Bagaimana menghapus Ctrl-M dari file yang dos2unix, perl, tr, dan sed tidak ada?


9

Misalkan Anda bekerja pada server unix yang sangat tua mana dos2unix, perl, tr, dan sedtidak hadir. Bagaimana Anda dapat mengkonversi file dari dos ke format unix ?


sed diizinkan?
elmarco

@elmarco: no :(
Hemant

9
Berapa umur server unix untuk tidak memilikinya trdan sed? sedsudah tua ........ iirc,
xenoterracide

1
Apakah exatau edtersedia pada sistem seperti itu? Saya tidak akan menyebutnya unix jika tidak ada tratau sed.
MattBianco

3
Tidak ada sed? Betulkah!? Karena ketertarikan, apa sistemnya? Seperti yang ditunjukkan Gilles dan MattBianco, itu mungkin masih memiliki edsetidaknya.
Mikel

Jawaban:


12

Saya pikir Anda mengacu menghapus caret-M di akhir baris. Anda dapat menggunakan pencarian dan ganti vi untuk melakukan ini.

Dalam vi saya biasanya melakukan: (di mana "^" mewakili CTRL):

:%s/^V^M//g

Yang ditampilkan di layar sebagai:

:%s/^M//g

terima kasih itu berhasil :). Saya pikir ini solusi yang sangat portabel.
Hemant

4
Anda juga dapat menggunakan sed untuk melakukan hal yang sama tanpa harus me-vim file: sed -e '% s / ^ V ^ M // g' nama file Itu juga akan ditampilkan di layar sebagai sed e '% s / ^ M // g 'filename Secara umum, jika Anda dapat mencari / menggantinya dalam vim, perintahnya hampir sama.
gabe.

2
@ gabe: solusi sed sebenarnya +1 bahkan lebih portabel :)
wzzrd

@wzzrd, seddan vikeduanya ditentukan oleh POSIX , dan viperintah itu tidak menggunakan ekstensi Vim.
Wildcard

@ jjclarkson apa artinya ^Vdan '^ M'?
Cokedude

6

Server tanpa tratau sedharus benar-benar tua, atau melewatkan beberapa perintah dasar. Semoga edada di sana; itu ada di Unix edisi pertama .

ed /path/to/file
1,$s/^V^M$//
w
q

di mana ^V^Mberarti mengetik Ctrl+ Vlalu Ctrl+ M(untuk memasukkan umpan garis literal). Jika Anda tahu bahwa semua baris diakhiri dengan CR LF, Anda dapat menggunakan 1,$s/.$//sebagai gantinya (menghapus karakter terakhir pada setiap baris).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.