Misalkan saya memiliki 2 File, ABC.txt
&PQR.txt
dengan data di bawah ini sebagai contoh:
ABC.txt:
ABC DEF
PQR.txt:
PQR XYZ
Saya ingin grep
kolom 1 dari kedua file dan tulis ke dalam file teks ketiga. Bagaimana caranya?
Output yang saya harapkan adalah (output.txt):
ABC PQR
Jawaban yang Diterima:
Berikut adalah beberapa cara:
-
Menggunakan
paste
dancut
:$ paste -d ' ' <(cut -d' ' -f 1 ABC.txt ) <(cut -d' ' -f 1 PQR.txt ) > output.txt ABC PQR
Jika sistem Anda tidak mendukung substitusi proses, gunakan ini sebagai gantinya:
$ cut -d' ' -f 1 ABC.txt > /tmp/aa; cut -d' ' -f 1 PQR.txt > /tmp/bb; paste -d ' ' /tmp/aa /tmp/bb
-
Menggunakan
awk
(terima kasih @Costas):awk 'FNR==NR{a[FNR]=$1; next}{print a[FNR],$1}' ABC.txt PQR.txt > output.txt
Variabel khusus
FNR
adalah nomor baris dari file input saat ini danNR
adalah nomor baris input secara umum, dari file apa pun asalnya. Keduanya sama hanya saat file input pertama sedang dibaca. Jadi, bidang pertama dari file pertama disimpan dia
larik (a[FNR]=$1
) yang kuncinya adalah nomor baris dan nilainya adalah bidang ke-1. Kemudian, ketika file kedua tercapai, kami mencetak nilai yang sesuai dengan nomor barisnya (a[NR]
) dan kolom pertama baris saat ini.