GNU/Linux >> Belajar Linux >  >> Linux

Ambil Kolom Pertama Dari 2 File Dan Tulis Ke File Ketiga?

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 dan cut :

    $ 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 dan NR 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 di a 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.


Linux
  1. Bagaimana mencegah dan memulihkan dari penghapusan file yang tidak disengaja di Linux

  2. Baca Dan Tulis Ke File Yang Sama Di Linux Tanpa Menimpanya??

  3. Cetak Konten File Tanpa Baris Pertama Dan Terakhir?

  1. Lum – Ganti Nilai Umum Dalam Dua File Menurut Kolom Pertama?

  2. Bagaimana cara membagi file dan menyimpan baris pertama di setiap bagian?

  3. Ambil kolom ke-n dalam file teks

  1. Salin file di terminal Linux

  2. Ganti nama file di terminal Linux

  3. Bagaimana Anda mem-gunzip file dan menyimpan file .gz?