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 AlbingKomando Kung Fu Jason Cannon
Talian Perintah Linux Travis Booth
Bash dalam 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.
senarai buku $ cat.txtsenarai buku $ awk '(NR> 1)'.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Keluarannya merangkumi semua baris selain baris pertama fail.
Contoh 2: Langkau baris pertama dengan menggunakan NR dan '!= 'pengendali
Perintah 'awk' berikut serupa dengan yang ada pada contoh sebelumnya. Walau bagaimanapun '!= 'operator perbandingan digunakan di sini dan bukannya'> '.
senarai buku $ cat.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 sekiranya pernyataan if benar. Di sini, pernyataan if akan benar hanya apabila nilai NR tidak sama dengan 1.
senarai buku $ cat.txt$ awk 'if (NR!= 1) Senarai buku print.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.
senarai buku $ cat.txt$ awk -F "\ t" 'print $ 1' senarai buku.txt | awk 'NR!= 1 cetak '
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.
senarai buku $ cat.txt$ awk -F '\ t' 'NR> = 2 printf "% 30s% 20s \ n", senarai buku $ 1, $ 2'.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Hasilnya 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.
senarai buku $ cat.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.
senarai buku $ cat.txt$ awk -F '\ t' 'if (NR == 1) printf "\ nNama Pengarang: \ n \ n"; lain-lain printf "% s \ n", senarai buku $ 2.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 diperhatikan, pemboleh ubah NR arahan 'awk' boleh digunakan untuk melangkau baris pertama sebarang fail.