Aduh

10 Contoh Perintah Awk Hebat

10 Contoh Perintah Awk Hebat
Perintah awk adalah alat yang kuat untuk memproses data. Ia mendapat data input, memanipulasinya, dan memberikan hasil dalam output standard. Pelbagai operasi dapat dilakukan pada baris dan lajur fail.

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:

BERMULA
i = 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.awk

Kesimpulan:

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.

Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...
Vulkan untuk Pengguna Linux
Dengan setiap kad grafik generasi baru, kami melihat pembangun permainan mendorong had kesetiaan grafik dan semakin dekat dengan fotorealisme. Tetapi ...