GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menggunakan Awk Untuk Mencetak Hanya Garis yang Berisi 5 Kolom?

Saya memiliki file yang berisi data yang dibatasi pipa. Saya ingin mencetak baris yang hanya memiliki 5 kolom.
Saya mencoba yang di bawah ini. Tidak bekerja. Itu hanya mencetak semua baris. Bisakah Anda memberi tahu saya cara melakukannya dengan benar. Terima kasih!

Isi file:

10413300|Maintenance Stock Clerk A - Michelle Hanley | Michelle Hanley (1680654)|Filled||10402112
10413301|Maintenance Stock Clerk - dasda|space||10402122
MOM Parkcentrum F;Alkotás u. 53.||34535|34345|asd
Business Center Naberezhnaya Tower" Block C"|||3453|ffg|345

Di sini saya mencoba untuk mencetak baris yang hanya memiliki 5 kolom.

$ gawk -F "|" '{ if (NF=5) print $0 }' data3
10413300 Maintenance Stock Clerk A - Michelle Hanley   Michelle Hanley (1680654) Filled
10413301 Maintenance Stock Clerk - dasda space  10402122
MOM Parkcentrum F;Alkotás u. 53.  34535 34345 asd
Business Center Naberezhnaya Tower Block C   3453 ffg

Outputnya menunjukkan bahwa 2 dari 4 baris memiliki lebih dari 5 kolom.

$ gawk -F "|" '{print NF}' data3
6
5
5
6

Jawaban yang Diterima:

NF=5 adalah tugas, nilai pengujian dilakukan dengan == . Seperti ini:

awk -F | 'NF==5' data3

Linux
  1. Menggunakan awk untuk mencetak semua kolom dari n ke yang terakhir

  2. Bagaimana cara memotong n kolom pertama dan n terakhir?

  3. Cara menemukan baris yang berisi string di linux

  1. Linux – Bagaimana Cara Menggunakan Ruang Swap Untuk Keadaan Darurat Saja?

  2. Cara menggunakan sed untuk menghapus n baris terakhir dari sebuah file

  3. Bagaimana cara mendapatkan hanya ID proses dalam menentukan nama proses di linux?

  1. Bagaimana mengizinkan hanya pengguna non-root tertentu yang menggunakan crontab

  2. Bagaimana cara mencetak kolom ketiga ke kolom terakhir?

  3. Bagaimana cara menggunakan baris file sebagai argumen perintah?