Mengetahui perkara penting dari perintah "awk" sangat penting ketika memproses data dengan cekap, dan catatan ini merangkumi ciri utama perintah "awk". Mari periksa sintaksnya terlebih dahulu:
$ awk [pilihan] [fail]Beberapa pilihan yang biasa digunakan diberikan dalam jadual di bawah:
Pilihan | Penerangan |
-F | Untuk menentukan pemisah fail |
-f | Tentukan fail yang mengandungi skrip "awk" |
-v | Untuk menetapkan pemboleh ubah |
Mari kita lihat beberapa contoh mengenai penggunaan perintah "awk", dan untuk demonstrasi, saya telah membuat fail teks dengan nama testFile.txt:
1. Cara mencetak lajur fail dengan perintah awk?
Perintah "awk" dapat digunakan untuk mendapatkan lajur tertentu dari file teks. Untuk mencetak kandungan penggunaan fail:
$ cat testFile.txt
Sekarang, untuk mencetak lajur kedua fail, gunakan:
$ awk 'print $ 2' testFile.txt
Untuk mencetak lebih daripada satu medan, gunakan arahan:
$ awk 'print $ 1, $ 2, $ 3' testFile.txt
Sekiranya anda tidak menggunakan koma "," maka outputnya akan tanpa spasi:
$ awk 'print $ 1 $ 2 $ 3' testFile.txt
2. Cara menggunakan ungkapan biasa dengan arahan awk:
Untuk mencocokkan rentetan atau ungkapan apa pun, kami menggunakan garis miring "//", misalnya, jika anda ingin mencetak nama orang yang mempelajari "Sejarah", kemudian gunakan:
$ awk '/ Sejarah / print $ 2' testFile.txt
Hasilnya jelas menunjukkan bahawa hanya "Sam" dan "Tommy" yang mempelajari kursus "Sejarah".
3. Cara menggunakan ungkapan hubungan dengan arahan "awk":
Untuk memadankan isi bidang tertentu, ekspresi relasional dapat digunakan. Untuk mencocokkan rentetan atau ekspresi dengan medan, tunjukkan bidang dan gunakan operator perbandingan "~" dengan corak seperti yang ditunjukkan dalam perintah berikut:
$ awk '$ 3 ~ / is / print $ 2' testFile.txt
Output di atas menampilkan setiap bidang di lajur 2 melawan setiap bidang yang berisi "adalah" di lajur 3.
Dan untuk mendapatkan output yang berlawanan dari perintah di atas, gunakan "! ~ "Pengendali:
$ awk '$ 3! ~ / is / print $ 2 'testFile.txt
Sebagai perbandingan, kita juga boleh menggunakan operator seperti lebih besar daripada ">" dan kurang dari "<” and equal “=” as well:
$ awk '$ 4> 70 print $ 2' testFile.txt
Hasilnya telah mencetak nama orang yang mendapat markah lebih dari 70.
4. Cara menggunakan corak julat dengan arahan awk:
Julat juga boleh digunakan untuk carian; cukup gunakan koma "," untuk memisahkan rentang seperti yang ditunjukkan dalam perintah yang disebutkan di bawah:
$ awk '/ Joel /, / Marlene / print $ 3' testFile.txt
Output menunjukkan subjek dari julat "Joel" hingga "Marlene" dari lajur 2. Kita boleh menggunakan tanda sama dua ganda “==” untuk menentukan julat; lihat contoh di bawah:
$ awk '$ 4 == 80, $ 4 == 90 print $ 0' testFile.txt
Keluaran memaparkan nama orang dari lajur 2 untuk julat tanda "70 hingga 80" dari lajur 4.
5. Cara menggabungkan corak menggunakan operator logik:
Penggunaan operator logik seperti ATAU "||," DAN "&&" membolehkan anda menggabungkan corak untuk carian. Gunakan arahan berikut
$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'testFile.txt
Perintah di atas mencetak nama orang pada medan keempat lebih signifikan daripada 80 dan bidang keenam lebih besar daripada 0.4. Dan hanya dua rekod yang memenuhi syarat tersebut.
6. The awk memerintahkan ungkapan khas:
Terdapat dua ungkapan khas, "BERMULA"Dan"TAMAT":
MULAI: Untuk melakukan tindakan sebelum data diproses
TAMAT: Untuk melakukan tindakan setelah data diproses
$ awk 'BEGIN print "Pemprosesan telah bermula"; cetak $ 2; TAMAT print "Processing telah berakhir" 'testFile.txt
7. Pemboleh ubah terbina dalam arahan awk:
Perintah awk mempunyai pelbagai pemboleh ubah yang membantu dalam pemprosesan data:
Pembolehubah | Penerangan |
NF | Ia memberikan bilangan medan dalam data |
NR | Ia memberikan bilangan rekod semasa |
NAMA FAIL | Memaparkan nama fail yang sedang diproses |
FS dan OFS | Pemisah medan dan pemisah Medan Keluaran |
RS dan ORS | Memisahkan rekod dan Pemisah Rekod Keluaran |
Sebagai contoh:
$ awk 'END print "Nama file adalah" FILENAME "mempunyai medan" NF "dan" NR "records"' testFile.txt
Kami menggunakan "TAMAT", tetapi jika anda menggunakan "BEGIN", output akan memberikan 0 bidang dan 0 catatan.
8. Cara menukar pemisah rekod:
Pemisah lalai dalam rekod biasanya ruang; jika terdapat koma "," atau titik "."Sebagai pemisah medan anda, kemudian gunakan pilihan" FS "bersama dengan pemisah.
Mari kita mempunyai fail lain di mana bidang data dipisahkan dengan titik koma ":":
$ cat testFile2.txt$ awk 'BEGIN FS = ":" print $ 2' testFile2.txt
Oleh kerana pemisah fail adalah titik dua, tetapi perintah "awk" malah bermanfaat untuk fail seperti ini, cukup gunakan pilihan "FS".
"-F" juga dapat digunakan:
$ awk -F ":" 'print $ 2' testFile2.txt
Pemisah rekod lalai adalah "barisan baru" dan untuk menetapkan pemisah rekod menjadi ":", gunakan:
$ awk 'BEGIN RS = ":" print $ 1' testFile2.txt
9. Tindakan Awk:
Tindakan awk adalah program kecil yang dikelilingi oleh tanda kurung "" dan mempunyai lebih daripada satu pernyataan yang dipisahkan dengan titik koma ";".
Pernyataan yang paling banyak digunakan dengan perintah "awk" adalah pernyataan "cetak". Contohnya, untuk mencetak teks dengan setiap rekod, gunakan rentetan teks dalam tanda petik:
$ awk '"The is a field," $ 2' testfile.txt
Mari lakukan operasi jumlah sederhana dengan menggunakan awk:
$ awk 'sum + = $ 4 TAMAT printf "% d \ n", sum' testFile.txt
10. Membuat program awk:
Mari kita mulakan dengan pengaturcaraan "awk", pengaturcaraan yang diberikan di bawah hanya melakukan pendaraban:
BERMULAi = 2
semasa (j<4)
cetak "Pendaraban 2 dengan" j "adalah" i * j;
j++
Simpan program dengan nama “myCode.awk"Dan untuk menjalankannya, buka terminal dan ketik:
$ awk -f myCode.awkKesimpulan:
Perintah "awk" adalah perintah yang berguna untuk memproses, mengimbas data fail teks, seperti memisahkan bidang tertentu dari fail; kami menggunakan perintah "awk". Ini menjadikannya lebih mudah untuk mencari apa sahaja dalam bentuk atau corak apa pun dari fail teks. Dalam panduan ini, kami memahami asas-asas perintah "awk" dan penggunaannya. Perintah "awk" mengesahkan data, menghasilkan laporan, dan bahkan menguraikan fail. Menggunakan perintah mudah "awk" juga membolehkan pengguna menulis program kecil untuk memproses data dengan lebih berkesan.