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
pastedancut:$ paste -d ' ' <(cut -d' ' -f 1 ABC.txt ) <(cut -d' ' -f 1 PQR.txt ) > output.txt ABC PQRJika 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.txtVariabel khusus
FNRadalah nomor baris dari file input saat ini danNRadalah 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 dialarik (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.