Saya memiliki file teks sederhana bernama "example".
Membaca dengan perintah terminal: cat example
Keluaran:
abc cdef ghi jk lmnopq rst uv wxyz
Saya ingin mengubah (mengubah) menjadi bentuk berikut: (keluaran yang diharapkan dari cat example
)
abc
cdef
ghi
jk
lmnopq
rst
uv
wxyz
Bagaimana saya bisa melakukan ini melalui command-line?
(Ini hanya file contoh, saya ingin mengonversi posisi kata dalam kolom-vertikal)
command-line
text-processing
Pandya
sumber
sumber
Jawaban:
Beberapa pilihan:
Klasik, gunakan
tr
:Menggunakan
cut
Menggunakan
sed
Menggunakan
perl
Gunakan cangkangnya
sumber
sed
contoh saya perlu menambahkan$
untuk mendapatkan bash untuk mengganti dengan baris baru yang sebenarnya yaitu:sed $'s/ /\\\n/g' example
sed $'s/ /\\n/g'
Coba perintah di bawah ini
ATAU
Contoh:
Penjelasan:
RS (Record seperator) adalah variabel awk bawaan. Dalam perintah pertama, nilai yang diberikan ke variabel pemisah Rekam adalah spasi. jadi awk memecah garis dari pencetakan setiap kali menemukan ruang.
Dalam perintah kedua, nilai yang diberikan ke variabel RS adalah spasi atau karakter baris baru. Perintah ini menghilangkan baris kosong tambahan yang muncul saat menjalankan perintah pertama.
sumber
Anda bisa menggunakan
xargs
,atau lebih baik
sumber
xargs -n 1 < example
menyelamatkan Anda 1 anak kucingMenggunakan
perl
oneliner:Ini akan mengganti spasi dan tab dengan "ENTER" (alias
\n
)sumber
Tidak ada yang diposting python, jadi ini dia:
Kami mengarahkan file input ke
python
aliran stdin, dan membacanya baris demi baris. Setiap baris dilucuti dari garis barunya, dibagi menjadi kata-kata, dan kemudian bergabung kembali menjadi satu string di mana setiap kata dipisahkan oleh baris baru. Hal ini dilakukan untuk memastikan memiliki satu kata per baris dan menghindari beberapa baris baru dimasukkan jika ada beberapa ruang di sebelah satu sama lain. Akhirnya kami berakhir dengan daftar string, yang kemudian bergabung menjadi string yang lebih besar, dan dicetak ke aliran stdout. Itu nanti bisa dialihkan ke file lain dengan> out.txt
redirection.sumber
Mirip dengan 'tr' di atas tetapi dengan tambahan:
Juga berfungsi untuk tab
Mengubah beberapa spasi atau tab menjadi 1 baris baru
sumber