Cukup gunakan cat
(jika Anda suka kucing ;-)) dan paste
:
cat file.in | paste -d, - - > file.out
Penjelasan: paste
membaca dari sejumlah file dan menempel bersama-sama baris yang sesuai (baris 1 dari file pertama dengan baris 1 dari file kedua dll):
paste file1 file2 ...
Alih-alih nama file, kita bisa menggunakan -
(dash). paste
mengambil baris pertama dari file1 (yang merupakan stdin). Kemudian, ia ingin membaca baris pertama dari file2 (yang juga stdin). Namun, karena baris pertama stdin sudah dibaca dan diproses, yang sekarang menunggu di aliran input adalah baris kedua dari stdin, yang paste
dengan senang hati menempel pada baris pertama. The -d
pilihan menetapkan pembatas menjadi koma daripada tab.
Atau, lakukan
cat file.in | sed "N;s/\n/,/" > file.out
PS Ya, orang dapat menyederhanakan hal di atas
< file.in sed "N;s/\n/,/" > file.out
atau
< file.in paste -d, - - > file.out
yang memiliki keuntungan karena tidak menggunakan cat
.
Namun, saya tidak menggunakan idiom ini dengan sengaja , untuk alasan kejelasan - ini kurang verbose dan saya suka cat
(CATS ARE NICE). Jadi tolong jangan edit.
Atau, jika Anda lebih suka menempelkan ke kucing (tempel adalah perintah untuk menggabungkan file secara horizontal, sementara kucing menggabungkannya secara vertikal), Anda dapat menggunakan:
paste file.in | paste -d, - -