Ganti semua baris baru ke luar angkasa kecuali baris terakhir


Jawaban:


42

Anda bisa menggunakan paste -s -d ' ' file.txt:

$ cat file.txt
one line
another line
third line
fourth line

$ paste -s -d ' ' file.txt 
one line another line third line fourth line

1
Keren! The -sdan -dpilihan tampak seperti dibuat untuk kasus ini.
mkc

10

Anda dapat menggunakan truntuk mengganti semua baris baru ke ruang dan meneruskan output ke seddan mengganti ruang terakhir kembali ke baris baru:

tr '\n' ' ' < afile.txt | sed '$s/ $/\n/'

5

Re-mengimplementasikan ide vonbrand ini di Perl, asalkan file tersebut cukup kecil:

perl -p00e 's/\n(?!\Z)/ /g' your_file

+1 karena metode ini berfungsi untuk penggantian dengan karakter multibyte (berbeda dengan tempel GNU)
myrdd

-1

Sesuatu seperti sed -e 's;\n\(.\); \1;'harus dilakukan ...


-1

Ini berhasil untuk saya.

tr '\n' ' ' < file_with_new_line   | sed 's/\ $//g' > file_with_space

Itu juga akan menghapus baris terakhir.
terdon

Saya rasa tidak, itu berfungsi dengan baik. Sudahkah Anda mencobanya ???
Abhijit

Ya saya punya. Sudahkah Anda? trPerintah Anda menggantikan semua baris baru dengan spasi dan sedperintah Anda menghilangkan spasi terakhir. Ini menghasilkan file tanpa baris terakhir dan karenanya bukan apa yang ditanyakan. Omong-omong, tidak ada int int menggunakan gdalam sedperintah. Karena Anda menggunakan $, itu hanya bisa cocok pada akhirnya, gtidak ada gunanya. Anda juga tidak perlu keluar dari ruang, `` tidak ada bedanya juga.
terdon
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.