Apakah AWK NF?

Apakah Awk Nf



Bahasa skrip AWK juga mempunyai satu siri pembolehubah khas terbina dalam untuk memenuhi beberapa tujuan yang telah ditetapkan. Satu pembolehubah terbina dalam sedemikian ialah 'NF' yang mempunyai fungsi pra-takrifnya sendiri. Artikel ini akan meneroka tujuan pembolehubah AWK terbina dalam ini dengan menunjukkan beberapa contoh yang berkaitan dalam Ubuntu 20.04.

AWK NF dalam Ubuntu 20.04:

Pembolehubah AWK 'NF' digunakan untuk mencetak bilangan medan dalam semua baris mana-mana fail yang disediakan. Pembolehubah terbina dalam ini berulang melalui semua baris fail satu demi satu dan mencetak bilangan medan secara berasingan untuk setiap baris. Untuk memahami fungsi ini dengan baik, anda perlu membaca contoh yang dibincangkan di bawah.

Contoh untuk Menunjukkan Penggunaan AWK NF dalam Ubuntu 20.04:

Empat contoh berikut telah direka bentuk dalam cara untuk mengajar anda penggunaan AWK NF dengan cara yang sangat mudah difahami. Kesemua contoh ini telah dilaksanakan menggunakan sistem pengendalian Ubuntu 20.04.







Contoh # 1: Cetak Bilangan Medan daripada Setiap Baris Fail Teks:

Dalam contoh ini, kami ingin mencetak bilangan medan atau lajur setiap baris atau baris atau rekod fail teks dalam Ubuntu 20.04. Untuk menunjukkan kepada anda kaedah berbuat demikian, kami telah mencipta fail teks yang ditunjukkan dalam imej di bawah. Fail teks ini mengandungi kadar epal sekilogram dari lima bandar berbeza di Pakistan.





Sebaik sahaja kami telah mencipta fail teks sampel ini, kami melaksanakan arahan berikut untuk mencetak bilangan medan daripada setiap baris fail teks ini dalam terminal kami:





$ awk ' { cetak NF } ' AppleRates.txt

Dalam arahan ini, kami mempunyai kata kunci 'awk' yang menunjukkan bahawa kami menjalankan perintah AWK diikuti dengan pernyataan 'cetak NF' yang hanya akan melelang melalui setiap baris fail teks sasaran dan akan mencetak bilangan medan secara berasingan untuk setiap baris fail teks. Akhir sekali, kami mempunyai nama fail teks itu (yang medannya akan dikira) yang dalam kes kami ialah 'AppleRatest.txt'.



Oleh kerana kami mempunyai bilangan medan yang sama untuk semua lima baris fail teks kami, iaitu 2, nombor yang sama dicetak sebagai bilangan medan untuk semua baris fail teks kerana melaksanakan arahan ini. Ini dapat dilihat dari gambar di bawah:

Contoh # 2: Cetak Bilangan Medan daripada Setiap Baris Fail Teks dengan Cara yang Boleh Dipersembahkan:

Output yang dipaparkan dalam contoh yang dibincangkan di atas juga boleh dipersembahkan dengan baik dengan memaparkan nombor baris dan bilangan medan setiap baris fail teks. Selain itu, kami juga boleh mengasingkan nombor baris daripada bilangan medan dengan sebarang watak istimewa pilihan kami. Kami akan menggunakan fail teks yang sama yang telah kami gunakan untuk contoh pertama kami untuk menunjukkan ini kepada anda. Walau bagaimanapun, arahan kami yang akan dilaksanakan dalam kes ini akan berbeza sedikit, dan ia adalah seperti berikut:

$ awk ' { cetak NR, “---”, NF } ' AppleRates.txt

Dalam arahan ini, kami telah memperkenalkan pembolehubah AWK terbina dalam 'NR' yang hanya akan mencetak nombor baris semua baris fail teks sasaran kami. Selain itu, kami telah menggunakan tiga sengkang, “—” sebagai aksara khas untuk memisahkan nombor baris daripada bilangan medan fail teks yang kami sediakan.

Output yang diubah suai sedikit bagi fail teks yang sama ditunjukkan dalam imej di bawah:

Contoh # 3: Cetak Medan Pertama dan Terakhir daripada Setiap Baris Fail Teks:

Selain daripada hanya mengira bilangan medan semua baris fail teks yang disediakan, pembolehubah khas 'NF' AWK juga boleh digunakan untuk mengekstrak nilai sebenar medan terakhir daripada fail teks yang disediakan. Sekali lagi, kami telah menggunakan fail teks yang sama yang telah kami gunakan untuk dua contoh pertama kami. Walau bagaimanapun, kami ingin mencetak nilai sebenar medan pertama dan terakhir fail teks kami dalam contoh ini. Untuk itu, kami melaksanakan arahan berikut:

$ awk ' { cetak $1 , $NF } ' AppleRates.txt

Kata kunci 'awk' diikuti dengan pernyataan 'cetak $1, $NF' dalam arahan ini. Pembolehubah khas '$1' telah digunakan untuk mencetak nilai medan pertama atau lajur pertama fail teks yang kami sediakan, manakala pembolehubah AWK '$NF' telah digunakan untuk mencetak nilai medan terakhir atau lajur terakhir daripada fail teks sasaran kami. Anda perlu perhatikan di sini bahawa apabila kita menggunakan pembolehubah 'NF' AWK sebagaimana adanya, maka ia digunakan untuk mengira bilangan medan setiap baris; walau bagaimanapun, apabila ia digunakan dengan simbol dolar '$', maka ia hanya akan mengekstrak nilai sebenar daripada medan terakhir fail teks yang disediakan. Perintah selebihnya adalah lebih kurang sama dengan arahan yang telah digunakan untuk dua contoh pertama.

Dalam output yang ditunjukkan di bawah, anda dapat melihat bahawa nilai sebenar dari medan pertama dan terakhir fail teks yang kami sediakan telah dicetak pada terminal. Anda boleh melihat bahawa output ini hampir sama dengan output arahan 'kucing' semata-mata kerana kami hanya mempunyai dua medan dalam fail teks yang kami sediakan; oleh itu, dalam satu cara, kandungan keseluruhan fail teks kami telah dicetak pada terminal sebagai hasil daripada melaksanakan arahan yang disebutkan di atas.

Contoh # 4: Pisahkan Rekod dengan Medan Hilang dalam Fail Teks:

Kadangkala, terdapat beberapa rekod dalam fail teks dengan medan tertentu yang hilang, dan anda mungkin mahu memisahkan rekod tersebut daripada rekod yang lengkap dalam setiap aspek. Ini juga boleh dilakukan dengan menggunakan pembolehubah 'NF' AWK. Untuk itu, kami telah mencipta fail teks bernama 'ExamMarks.txt' yang mengandungi markah peperiksaan lima pelajar berbeza dalam tiga peperiksaan berbeza berserta nama mereka. Walau bagaimanapun, untuk peperiksaan ketiga, beberapa pelajar tidak hadir kerana markah mereka hilang. Fail teks ini adalah seperti berikut:

Untuk membezakan rekod dengan medan yang hilang daripada rekod dengan medan lengkap, kami akan melaksanakan arahan yang ditunjukkan di bawah:

$ awk ' { cetak NR, “--- > ”, NF } ’ ExamMarks.txt

Perintah ini adalah sama seperti yang telah kami gunakan untuk contoh kedua kami. Walau bagaimanapun, daripada output arahan ini yang ditunjukkan dalam imej berikut, anda boleh melihat bahawa rekod pertama dan keempat telah lengkap, manakala rekod kedua, ketiga dan kelima mengandungi medan yang hilang.

Kesimpulan:

Tujuan artikel ini adalah untuk menerangkan penggunaan pembolehubah khas AWK 'NF'. Kami mula-mula membincangkan secara ringkas bagaimana pembolehubah ini berfungsi, dan selepas itu, kami menghuraikan konsep ini dengan baik dengan bantuan empat contoh yang berbeza. Setelah anda memahami semua contoh yang dikongsi dengan baik, anda akan dapat menggunakan pembolehubah AWK 'NF' untuk mengira jumlah bilangan medan dan mencetak nilai sebenar medan terakhir fail yang disediakan.