Cara tercepat dan termudah yang saya tahu untuk mengatasi masalah ini:
Saat kami ingin mengganti karakter baris baru \n dengan spasi :
xargs < file
xargsmemiliki batas sendiri pada jumlah karakter per baris dan jumlah semua karakter yang digabungkan, tetapi kita dapat meningkatkannya. Detail dapat ditemukan dengan menjalankan perintah ini: xargs --show-limitsdan tentu saja dalam manual:man xargs
Saat kami ingin mengganti satu karakter dengan yang lainnya tepat satu karakter :
tr '\n' ' ' < file
Saat kami ingin mengganti satu karakter dengan banyak karakter :
tr '\n' '~' < file | sed s/~/many_characters/g
Pertama, kami mengganti karakter baris baru \nuntuk tildes ~(atau memilih karakter unik lain yang tidak ada dalam teks), dan kemudian kami mengganti karakter tilde dengan karakter lain ( many_characters) dan kami melakukannya untuk setiap tilde (bendera g).
sedskrip Anda dalam tanda kutip tunggal sehingga Bash tidak mengacaukannya (karenased s/\n/ /gpanggilanseddengan dua argumen, yaitus/n/dan/g); (2) karena Anda ingin outputcat file | grep patternmenjadi masukan untuksed, bukan argumen untuksed, Anda perlu menghilangkanxargs; dan (3) tidak perlu untuk dicatsini, karenagrepdapat menggunakan nama file sebagai argumen kedua. Jadi, Anda harus mencobagrep pattern file | sed 's/\n/ /g'. (Dalam hal ini itu tidak akan berhasil, untuk alasan yang diberikan pada tautan di atas, tetapi sekarang Anda tahu untuk masa depan.)