Cara Melangkau Baris Pertama Fail Menggunakan `awk`

How Skip First Line File Using Awk



Terdapat pelbagai kegunaan perintah `awk` di Linux. Sebagai contoh, ia boleh digunakan untuk mencetak kandungan fail teks. Baris pertama dari banyak fail teks mengandungi tajuk fail, dan kadang-kadang, baris pertama mesti dilangkau semasa mencetak kandungan fail. Dalam tutorial ini, kami akan menunjukkan kepada anda bagaimana menyelesaikan tugas ini dengan menggunakan perintah `awk`.

Buat fail teks

Untuk mengikuti tutorial ini, buat fail teks yang dibatasi tab bernama senarai buku.txt dengan kandungan berikut. Fail ini mengandungi senarai buku dengan pengarangnya yang sesuai. Dalam tutorial ini, kami akan menunjukkan kepada anda cara mencetak pelbagai bahagian fail ini setelah melewati baris pertama.







Keselamatan siber dengan bash Paul Troncone, Carl Albing

Komando Kung Fu Jason Cannon

Talian Perintah Linux Travis Booth

Bash dengan langkah mudah Mike McGrath

Unix dalam langkah mudah Mike McGrath

Contoh 1: Langkau baris pertama fail menggunakan NR dan operator '>'

Pemboleh ubah NR menunjukkan bilangan rekod dalam fail. Perintah `awk` berikut menggunakan pemboleh ubah NR untuk melangkau baris pertama fail. Nilai NR adalah 1 untuk baris pertama. Perintah berikut akan mencetak baris yang nilai NRnya lebih besar daripada 1.



$kucingsenarai buku.txt

$awk '(TIDAK> 1)'senarai buku.txt

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Keluaran merangkumi semua baris selain baris pertama fail.







Contoh 2: Langkau baris pertama dengan menggunakan NR dan operator '! ='

Perintah `awk` berikut serupa dengan yang ada pada contoh sebelumnya. Walau bagaimanapun, operator perbandingan ‘! =’ Digunakan di sini dan bukannya ‘>’.

$kucingsenarai buku.txt

$awk 'NR! = 1'senarai buku.txt

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Keluaran menunjukkan semua baris selain baris pertama fail.



Contoh 3: Langkau baris pertama fail dengan menggunakan pernyataan bersyarat

Perintah `awk` berikut akan mencetak baris fail jika pernyataan if benar. Di sini, pernyataan if akan benar hanya apabila nilai NR tidak sama dengan 1.

$kucingsenarai buku.txt

$awk '{if (NR! = 1) {cetak}}'senarai buku.txt

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Output merangkumi semua baris kecuali baris pertama fail.

Contoh 4: Cetak nama buku dari fail tetapi langkau baris pertama

Dua perintah `awk` digunakan dalam contoh ini untuk mencetak semua nama buku kecuali yang pertama. Perintah `awk` akan membaca lajur pertama dari fail berdasarkan pemisah medan ( t) dan menghantar output ke perintah` awk` kedua. Perintah `awk` kedua akan mencetak output yang diinginkan.

$kucingsenarai buku.txt

$awk -F ' t' '{cetak $ 1}'senarai buku.txt| awk 'NR! = 1 cetakan}'

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Keluaran menunjukkan semua nama buku kecuali untuk buku pertama.

Contoh 5: Format kandungan fail setelah melangkau baris pertama

Pilihan ‘-F’, pemboleh ubah NR, dan fungsi printf digunakan dalam perintah `awk` berikut untuk menghasilkan output yang diformat setelah melewati baris pertama. Perintah akan membahagikan kandungan fail menjadi lajur berdasarkan t, dan printf akan mencetak lajur pertama dan kedua apabila nilai NR sekurang-kurangnya 2.

$kucingsenarai buku.txt

$awk -F ' t' 'NR> = 2 {printf'% 30s% 20s n ', $ 1, $ 2}'senarai buku.txt

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Keluaran menunjukkan kandungan fail yang diformat, tidak termasuk baris pertama fail.

Contoh 6: Cetak nama buku setelah melangkau baris pertama menggunakan NR dan NF

Perintah `awk` berikut menggunakan pilihan‘ -F ’dan NR dan NF untuk mencetak nama buku setelah melangkau buku pertama. Pilihan ‘-F’ digunakan untuk memisahkan kandungan pangkalan fail di t. NR digunakan untuk melangkau baris pertama, dan NF digunakan untuk mencetak lajur pertama sahaja.

$kucingsenarai buku.txt

$awk -F ' t' 'NR> 1 && NF = 1'senarai buku.txt

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Hasilnya merangkumi semua nama buku dalam fail kecuali buku pertama.

Contoh 7: Cetak nama pengarang yang diformat setelah melangkau baris pertama

Perintah `awk` berikut menggunakan pilihan‘ -F ’dan pernyataan bersyarat untuk mencetak nama pengarang setelah melangkau baris pertama. Di sini, nilai NR digunakan dalam keadaan if. Di sini, Nama Pengarang: n n akan dicetak sebagai baris pertama dan bukannya kandungan dari baris pertama. Nama pengarang dari fail akan dicetak untuk nilai NR yang lain.

$kucingsenarai buku.txt

$awk -F ' t' '{if (NR == 1) printf' nNama Pengarang: n n '; lain printf '% s n', $ 2} 'senarai buku.txt

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Keluaran menunjukkan teks, Nama Pengarang: dengan baris baru, dan semua nama pengarang dicetak kecuali yang pertama.

Kesimpulannya

Baris pertama fail boleh dilangkau dengan menggunakan pelbagai perintah Linux. Seperti yang ditunjukkan dalam tutorial ini, ada cara yang berbeza untuk melangkau baris pertama fail dengan menggunakan perintah `awk`. Perlu diketahui, pemboleh ubah NR arahan `awk` dapat digunakan untuk melangkau baris pertama mana-mana fail.