Cara Tercepat & Paling Inti untuk mengganti “\ r \ n” dengan “\ n” dalam file?

11

Saya kira tradalah metode yang lebih inti dan dengan demikian mungkin cara yang lebih cepat untuk mengganti hal-hal dalam file yang diberikan.

Namun tr hanya dapat mengganti jumlah karakter yang sama. berarti...

2 karakter hanya dapat diganti dengan 2 karakter yang berarti mengganti

\r\ndengan \nkeluar dari pertanyaan viatr

apakah opsi terbaik berikutnya sed?

Apakah ini cara paling inti dan tercepat untuk mengganti \r\ndengan \ndalam file mengingat kurangnya kemampuan dalam tr?

ingin contoh jika memungkinkan.

pengguna73235
sumber
Apa sebenarnya arti "Most Core"?
Keith Thompson

Jawaban:

23

Dengan sed, Anda dapat melakukan:

sed 's/\r$//'

Cara yang sama dapat dilakukan dengan tr, Anda hanya perlu menghapus \r:

tr -d '\r'

Meskipun ini akan menghapus semua contoh \r, tidak perlu diikuti oleh \n.

cuonglm
sumber
2
Keduanya tidak identik. Yang pertama dengan mengganti '\ r \ n' dengan '\ n' (efektif), tetapi yang kedua akan menghapus semua '\ r' di mana pun mereka muncul. Jarang untuk carriage-return muncul dalam file teks, selain di akhir baris, tetapi itu bisa terjadi.
ams
4

ATAU gunakan dos2unix

sebagai contoh:

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

kita bisa lihat ganti \r\ndengan\n

بارپابابا
sumber
Ini bukan program dalam daftar OP tetapi menurut saya cara paling bersih untuk melakukan pekerjaan itu. Saya pribadi menggunakannya setiap kali saya perlu konversi seperti itu.
рüффп