Banyak alat utiliti ada dalam sistem operasi Linux untuk mencari dan menghasilkan laporan dari data teks atau fail. Pengguna dapat dengan mudah melakukan banyak jenis pencarian, penggantian dan laporan menghasilkan tugas dengan menggunakan perintah awk, grep dan sed. awk bukan sekadar perintah. Ini adalah bahasa skrip yang dapat digunakan dari kedua-dua terminal dan fail awk. Ia menyokong pemboleh ubah, pernyataan bersyarat, susunan, gelung dan lain-lain seperti bahasa skrip lain. Ia dapat membaca setiap kandungan kandungan baris demi baris dan memisahkan bidang atau lajur berdasarkan pembatas tertentu. Ini juga mendukung ekspresi biasa untuk mencari rentetan tertentu dalam kandungan teks atau file dan mengambil tindakan jika ada kecocokan. Cara anda menggunakan perintah awk dan skrip ditunjukkan dalam tutorial ini dengan menggunakan 20 contoh berguna.
Kandungan:
- awk dengan printf
- awk berpecah di ruang putih
- awk untuk menukar pembatas
- awk dengan data yang dibatasi tab
- awk dengan data csv
- awk regex
- awk case tidak sensitif regex
- awk dengan pemboleh ubah nf (bilangan medan)
- fungsi awk gensub ()
- awk dengan fungsi rand ()
- fungsi yang ditentukan pengguna awk
- awk jika
- pemboleh ubah awk
- susunan awk
- gelung awk
- awk untuk mencetak lajur pertama
- awk untuk mencetak ruangan terakhir
- awk dengan grep
- awk dengan fail skrip bash
- awk dengan sed
Menggunakan awk dengan printf
printf () fungsi digunakan untuk memformat sebarang output dalam kebanyakan bahasa pengaturcaraan. Fungsi ini boleh digunakan dengan awk arahan untuk menghasilkan pelbagai jenis output berformat. arahan awk terutama digunakan untuk sebarang fail teks. Buat fail teks bernama pekerja.txt dengan kandungan yang diberikan di bawah di mana bidang dipisahkan oleh tab (‘ t’).
pekerja.txt
1001 John sena 40000
1002 Jafar Iqbal 60000
1003 Meher Nigar 30000
1004 Jonny Liver 70000
Perintah awk berikut akan membaca data dari pekerja.txt failkan baris demi baris dan cetak yang pertama difailkan selepas pemformatan. Di sini, % 10s n bermaksud bahawa output akan panjang 10 aksara. Sekiranya nilai output kurang dari 10 aksara maka spasi akan ditambahkan di bahagian depan nilai.
$ awk'{printf'% 10s n', $ 1}'pekerja.txt
Pengeluaran:
awk berpecah di ruang putih
Pemisah kata atau medan lalai untuk membelah sebarang teks adalah ruang kosong. perintah awk dapat mengambil nilai teks sebagai input dalam pelbagai cara. Teks input dihantar dari membuang arahan dalam contoh berikut. Teks, ' Saya suka pengaturcaraan Akan dibahagi secara pemisah lalai, ruang , dan perkataan ketiga akan dicetak sebagai output.
$membuang 'Saya suka pengaturcaraan' | awk '{cetak $ 3}'Pengeluaran:
awk untuk menukar pembatas
perintah awk boleh digunakan untuk mengubah pembatas bagi sebarang kandungan fail. Katakan, anda mempunyai fail teks bernama telefon.txt dengan kandungan berikut di mana ':' digunakan sebagai pemisah bidang kandungan fail.
telefon.txt
+123: 334: 889: 778+880: 1855: 456: 907
+9: 7777: 38644: 808
Jalankan arahan awk berikut untuk menukar pembatas, ':' oleh ‘-’ ke kandungan fail, telefon.txt .
$ cat phone.txt$ awk '$ 1 = $ 1' FS = ':' OFS = '-' phone.txt
Pengeluaran:
awk dengan data yang dibatasi tab
perintah awk mempunyai banyak pemboleh ubah terbina dalam yang digunakan untuk membaca teks dengan cara yang berbeza. Dua daripadanya adalah FS dan OFS . FS adalah pemisah medan input dan OFS adalah pemboleh ubah pemisah medan output. Penggunaan pemboleh ubah ini ditunjukkan dalam bahagian ini. Buat a tab fail yang dipisahkan bernama input.txt dengan kandungan berikut untuk menguji kegunaan FS dan OFS pemboleh ubah.
Input.txt
Bahasa skrip sisi pelangganBahasa skrip sisi pelayan
Pelayan Pangkalan Data
Pelayan Web
Menggunakan pemboleh ubah FS dengan tab
Perintah berikut akan membahagi setiap baris input.txt fail berdasarkan tab (‘ t’) dan cetak bidang pertama setiap baris.
$awk '{cetak $ 1}' FS=' t'input.txtPengeluaran:
Menggunakan pemboleh ubah OFS dengan tab
Perintah awk berikut akan mencetak 9ika dan 5ika bidang dari 'Ls -l' output perintah dengan pemisah tab setelah mencetak tajuk lajur Nama dan Saiz . Di sini, OFS pemboleh ubah digunakan untuk memformat output dengan tab.
$ls -tempat$ls -tempat | awk -v OFS=' t' 'BEGIN {printf'% s t% s n ',' Nama ',' Saiz '} {cetak $ 9, $ 5}'
Pengeluaran:
awk dengan data CSV
Kandungan fail CSV apa pun dapat diuraikan dengan pelbagai cara dengan menggunakan perintah awk. Buat fail CSV yang diberi nama ‘ pelanggan.csv 'Dengan kandungan berikut untuk menerapkan perintah awk.
pelanggan.txt
Id, Nama, e-mel, telefon1, Sophia, [dilindungi e-mel], (862) 478-7263
2, Amelia, [dilindungi e-mel], (530) 764-8000
3, Emma, [dilindungi e-mel], (542) 986-2390
Membaca satu bidang fail CSV
‘-F’ pilihan digunakan dengan perintah awk untuk menetapkan pembatas untuk membelah setiap baris fail. Perintah awk berikut akan mencetak nama bidang pelanggan.csv fail.
$kucingpelanggan.csv$awk -F ',' '{cetak $ 2}'pelanggan.csv
Pengeluaran:
Membaca pelbagai bidang dengan menggabungkan dengan teks lain
Perintah berikut akan mencetak tiga bidang pelanggan.csv dengan menggabungkan teks tajuk, Nama, E-mel dan Telefon . Baris pertama dari pelanggan.csv fail mengandungi tajuk setiap bidang. TIADA pemboleh ubah mengandungi nombor baris fail ketika perintah awk menguraikan fail. Dalam contoh ini, NR pemboleh ubah digunakan untuk menghilangkan baris pertama fail. Keluaran akan menunjukkan 2nd, 3rddan 4ikabidang semua baris kecuali baris pertama.
$awk -F ',' 'NR> 1 {print' Nama: '$ 2', E-mel: '$ 3', Telefon: '$ 4}'pelanggan.csvPengeluaran:
Membaca fail CSV menggunakan skrip awk
skrip awk dapat dijalankan dengan menjalankan fail awk. Cara anda membuat fail awk dan menjalankan fail ditunjukkan dalam contoh ini. Buat fail bernama awkcsv.awk dengan kod berikut. BERMULA kata kunci digunakan dalam skrip untuk memberitahu perintah awk untuk melaksanakan skrip BERMULA berpisah terlebih dahulu sebelum melaksanakan tugas lain. Di sini, pemisah medan ( FS ) digunakan untuk menentukan pembatas pemisah dan 2nddan 1stbidang akan dicetak mengikut format yang digunakan dalam fungsi printf ().
awkcsv.awkBERMULA{FS= ','} { printf '% 5s (% s) n',$2,$1}
Lari awkcsv.awk fail dengan kandungan pelanggan.csv fail dengan arahan berikut.
$awk -fawkcsv.awk pelanggan.csvPengeluaran:
awk regex
Ungkapan biasa adalah corak yang digunakan untuk mencari rentetan dalam teks. Pelbagai jenis tugas pencarian dan penggantian yang rumit dapat dilakukan dengan mudah dengan menggunakan ungkapan biasa. Beberapa penggunaan sederhana ungkapan biasa dengan perintah awk ditunjukkan dalam bahagian ini.
Perwatakan yang sepadansetPerintah berikut akan sesuai dengan perkataan Bodoh atau bool atau Sejuk dengan rentetan input dan cetak sekiranya perkataan itu dijumpai. Di sini, Anak patung tidak akan sesuai dan tidak dicetak.
$printf 'Bodoh nSejuk nAnak patung nbool ' | awk '/ [FbC] ool /'Pengeluaran:
Mencari rentetan pada permulaan baris
‘^’ simbol digunakan dalam ungkapan biasa untuk mencari corak apa pun pada permulaan garis. ' Linux ’ perkataan akan dicari pada permulaan setiap baris teks dalam contoh berikut. Di sini, dua baris bermula dengan teks, ‘Linux 'Dan kedua-dua baris akan ditunjukkan dalam output.
$membuang -Dan Linux bebas digunakan nIa adalah perisian sumber terbuka nLinuxHint adalahlaman blog yang popular ' | awk '/ ^ Linux /'
Pengeluaran:
Mencari rentetan di hujung baris
'$' simbol digunakan dalam ungkapan biasa untuk mencari corak apa pun di akhir setiap baris teks. ' Skrip Perkataan dicari dalam contoh berikut. Di sini, dua baris mengandungi perkataan, Skrip di hujung talian.
$membuang -Dan Skrip PHP nJavaScript nPengaturcaraan Visual ' | awk '/ Skrip $ /'Pengeluaran:
Mencari dengan menghilangkan set watak tertentu
‘^’ simbol menunjukkan permulaan teks apabila digunakan di hadapan corak rentetan (‘/ ^… /’) atau sebelum set watak yang diisytiharkan oleh ^ […] . Sekiranya ‘^’ simbol digunakan di dalam kurungan ketiga, [^…] maka set watak yang ditentukan di dalam kurungan akan dihilangkan pada waktu pencarian. Perintah berikut akan mencari mana-mana perkataan yang tidak bermula ‘F’ tetapi berakhir dengan ‘ ool '. Sejuk dan bool akan dicetak mengikut corak dan data teks.
$ printf 'Bodoh nSejuk nAnak patung nbool ' |awk'/ [^ F] ool /'Pengeluaran:
awk case tidak sensitif regex
Secara lalai, ungkapan biasa melakukan carian sensitif huruf ketika mencari corak dalam rentetan. Pencarian peka huruf besar boleh dilakukan dengan perintah awk dengan ungkapan biasa. Dalam contoh berikut, untuk rendahkan() fungsi digunakan untuk melakukan carian tidak sensitif kes. Di sini, kata pertama setiap baris teks input akan ditukar menjadi huruf kecil dengan menggunakan untuk rendahkan() berfungsi dan sesuai dengan corak ungkapan biasa. penyepit () fungsi juga dapat digunakan untuk tujuan ini, dalam hal ini, pola harus ditentukan oleh semua huruf besar. Teks yang ditentukan dalam contoh berikut mengandungi kata pencarian, 'Web Dalam dua baris yang akan dicetak sebagai output.
$membuang -Dan Reka Bentuk Web npembangunan web nRangka Kerja ' | awk 'tolower ($ 0) ~ / ^ web /;'Pengeluaran:
awk dengan pemboleh ubah NF (bilangan medan)
NF adalah pemboleh ubah built-in perintah awk yang digunakan untuk mengira jumlah medan di setiap baris teks input. Buat mana-mana fail teks dengan pelbagai baris dan pelbagai perkataan. input.txt fail digunakan di sini yang dibuat dalam contoh sebelumnya.
Menggunakan NF dari baris arahan
Di sini, arahan pertama digunakan untuk memaparkan kandungan input.txt fail dan arahan kedua digunakan untuk menunjukkan jumlah medan di setiap baris fail menggunakan NF pemboleh ubah.
$ cat input.txt$ awk '{print NF}' input.txt
Pengeluaran:
Menggunakan NF dalam fail awk
Buat fail awk bernama mengira.awk dengan skrip yang diberikan di bawah. Apabila skrip ini akan dilaksanakan dengan data teks apa pun maka setiap kandungan baris dengan jumlah bidang akan dicetak sebagai output.
mengira.awk
{mencetak $0}{mencetak'[Jumlah medan:'NF']'}
Jalankan skrip dengan arahan berikut.
$awk -fhitung.awk input.txtPengeluaran:
fungsi awk gensub ()
getub () adalah fungsi penggantian yang digunakan untuk mencari rentetan berdasarkan pembatas tertentu atau corak ekspresi biasa. Fungsi ini ditakrifkan dalam ‘Gawk’ pakej yang tidak dipasang secara lalai. Sintaks untuk fungsi ini diberikan di bawah. Parameter pertama mengandungi corak ekspresi biasa atau pembatas pencarian, parameter Kedua berisi teks pengganti, parameter ketiga menunjukkan bagaimana pencarian akan dilakukan dan parameter terakhir berisi teks di mana fungsi ini akan diterapkan.
Sintaks:
gensub(regexp, penggantian, bagaimana[, sasaran])Jalankan arahan berikut untuk memasang gawk pakej untuk digunakan getub () berfungsi dengan arahan awk.
$ sudo apt-get install gawkBuat fail teks bernama ' salesinfo.txt 'Dengan kandungan berikut untuk mempraktikkan contoh ini. Di sini, medan dipisahkan oleh tab.
salesinfo.txt
700000 saya800000 anda
Rabu 750000
Kumpulkan 200000
Jumaat 430000
Sabtu 820000
Jalankan arahan berikut untuk membaca medan angka dari salesinfo.txt fail dan cetak jumlah keseluruhan jumlah penjualan. Di sini, parameter ketiga, ‘G’ menunjukkan carian global. Ini bermaksud corak akan dicari dalam kandungan penuh fail.
$awk '{x = gensub (' t ',' ',' G ', $ 2); printf x '+'} TAMAT {cetak 0} 'salesinfo.txt| bc -tempatPengeluaran:
awk dengan fungsi rand ()
baris () fungsi digunakan untuk menghasilkan nombor rawak yang lebih besar daripada 0 dan kurang daripada 1. Jadi, ia akan selalu menghasilkan nombor pecahan kurang dari 1. Perintah berikut akan menghasilkan nombor rawak pecahan dan mengalikan nilai dengan 10 untuk mendapatkan nombor lebih daripada 1. Nombor pecahan dengan dua digit selepas titik perpuluhan akan dicetak untuk menerapkan fungsi printf (). Sekiranya anda menjalankan perintah berikut berkali-kali maka anda akan mendapat output yang berbeza setiap masa.
$awk 'BEGIN {printf' Number is =%. 2f n ', rand () * 10}'Pengeluaran:
fungsi yang ditentukan pengguna awk
Semua fungsi yang digunakan dalam contoh sebelumnya adalah fungsi terbina dalam. Tetapi anda boleh menyatakan fungsi yang ditentukan pengguna dalam skrip awk anda untuk melakukan tugas tertentu. Katakan, anda ingin membuat fungsi khusus untuk mengira luas sebuah segi empat tepat. Untuk melakukan tugas ini, buat fail bernama ' kawasan.awk 'Dengan skrip berikut. Dalam contoh ini, fungsi yang ditentukan pengguna dinamakan kawasan () dinyatakan dalam skrip yang mengira kawasan berdasarkan parameter input dan mengembalikan nilai kawasan. garis panduan arahan digunakan di sini untuk mengambil input dari pengguna.
kawasan.awk
# Kira luasfungsikawasan(ketinggian,lebar){
kembaliketinggian*lebar
}
# Memulakan pelaksanaan
BERMULA{
mencetak'Masukkan nilai ketinggian:'
garis panduan h< '-'
mencetak'Masukkan nilai lebar:'
garis panduan w< '-'
mencetak'Kawasan ='kawasan(h,dalam)
}
Jalankan skrip.
$awk -fkawasan.awkPengeluaran:
awk jika contoh
awk menyokong pernyataan bersyarat seperti bahasa pengaturcaraan standard lain. Tiga jenis pernyataan jika ditunjukkan dalam bahagian ini dengan menggunakan tiga contoh. Buat fail teks bernama item.txt dengan kandungan berikut.
item.txt
HDD Samsung $ 100Tetikus A4Tech
Pencetak HP $ 200
Ringkas jika contoh :
dia mengikuti arahan akan membaca kandungan item.txt fail dan periksa 3rd nilai medan di setiap baris. Sekiranya nilainya kosong maka ia akan mencetak mesej ralat dengan nombor baris.
$awk '{if ($ 3 ==' ') cetak' Medan harga tidak ada di baris 'NR}'item.txtPengeluaran:
jika-contoh lain:
Perintah berikut akan mencetak harga barang jika 3rdbidang ada dalam baris, jika tidak, ia akan mencetak mesej ralat.
$ awk'{if ($ 3 ==' ') cetak' Medan harga tiada 'yang lain cetak 'harga barang adalah' $ 3} 'barang.txt
Pengeluaran:
if-else-if contoh:
Apabila arahan berikut akan dilaksanakan dari terminal maka ia akan mengambil input dari pengguna. Nilai input akan dibandingkan dengan masing-masing jika keadaan sehingga keadaan benar. Sekiranya ada syarat yang berlaku maka ia akan mencetak gred yang sesuai. Sekiranya nilai input tidak sesuai dengan keadaan apa pun maka ia akan gagal dicetak.
$awk 'BEGIN {print' Masukkan tanda: 'tanda getline<'-'
jika (mark> = 90) cetak 'A +'
lain jika (mark> = 80) cetak 'A'
lain jika (mark> = 70) cetak 'B +'
lain cetak 'Fail'} '
Pengeluaran:
pemboleh ubah awk
Pengisytiharan pemboleh ubah awk serupa dengan pengisytiharan pemboleh ubah shell. Terdapat perbezaan dalam membaca nilai pemboleh ubah. Simbol ‘$’ digunakan dengan nama pemboleh ubah untuk pemboleh ubah shell untuk membaca nilainya. Tetapi tidak perlu menggunakan ‘$’ dengan pemboleh ubah awk untuk membaca nilainya.
Menggunakan pemboleh ubah mudah:
Perintah berikut akan menyatakan pemboleh ubah bernama 'tapak' dan nilai rentetan diberikan kepada pemboleh ubah tersebut. Nilai pemboleh ubah dicetak dalam pernyataan seterusnya.
$awk 'BEGIN {site =' LinuxHint.com '; laman cetak} 'Pengeluaran:
Menggunakan pemboleh ubah untuk mengambil data dari fail
Perintah berikut akan mencari perkataan 'Mesin pencetak' dalam fail item.txt . Sekiranya ada baris fail bermula dengan 'Mesin pencetak Maka ia akan menyimpan nilai 1st , 2nd dan 3rd bidang menjadi tiga pemboleh ubah. nama dan harga pemboleh ubah akan dicetak.
$ awk'/ Pencetak / {name = $ 1; jenama = $ 2; harga = $ 3; cetak' nama item = 'nama;cetak 'harga barang =' harga} 'barang.txt
Pengeluaran:
susunan awk
Kedua-dua tatasusunan berangka dan berkaitan boleh digunakan dalam awk. Pengisytiharan pemboleh ubah array dalam awk sama dengan bahasa pengaturcaraan lain. Beberapa kegunaan susunan ditunjukkan dalam bahagian ini.
Array Bersekutu:
Indeks larik akan menjadi rentetan bagi susunan bersekutu. Dalam contoh ini, susunan tiga elemen dinyatakan dan dicetak.
$awk 'MULAKAN {buku ['Web Design'] = 'Belajar HTML 5';
buku ['Pengaturcaraan Web'] = 'PHP dan MySQL'
buku ['PHP Framework'] = 'Belajar Laravel 5'
printf '% s n% s n% s n', buku ['Web Design'], buku ['Web Programming'],
buku ['PHP Framework']} '
Pengeluaran:
Array Numerik:
Susunan angka tiga elemen dinyatakan dan dicetak dengan memisahkan tab.
$ awk'MULAKAN {nombor [0] = 80;
nombor [1] = 55;
nombor [2] = 76;
# elemen susunan cetak
printf 'Array nilai:% d t% d t% d n', nombor [0], nombor [1], nombor [2]; } '
Pengeluaran:
gelung awk
Tiga jenis gelung disokong oleh awk. Kegunaan gelung ini ditunjukkan di sini dengan menggunakan tiga contoh.
Semasa gelung:
sementara gelung yang digunakan dalam perintah berikut akan berulang selama 5 kali dan keluar dari gelung untuk pernyataan putus.
$ awk 'MULAKAN {n = 1; sementara (n 5) rehat; mencetak n; n ++}} 'Pengeluaran:
Untuk gelung:
Untuk gelung yang digunakan dalam perintah awk berikut akan mengira jumlahnya dari 1 hingga 10 dan mencetak nilainya.
$awk 'MULAKAN {jumlah = 0; untuk (n = 1; n<= 10; n++) sum=sum+n; print sum }'Pengeluaran:
Gelung buat sementara waktu:
gelung do-while arahan berikut akan mencetak semua nombor genap dari 10 hingga 5.
$awk 'BEGIN {kaunter = 10; lakukan {if (kaunter% 2 == 0) kaunter cetak; kaunter--}sementara (kaunter> 5)} '
Pengeluaran:
awk untuk mencetak lajur pertama
Lajur pertama mana-mana fail boleh dicetak dengan menggunakan pemboleh ubah $ 1 dalam awk. Tetapi jika nilai lajur pertama mengandungi banyak perkataan maka hanya cetakan pertama lajur pertama. Dengan menggunakan pembatas tertentu, lajur pertama dapat dicetak dengan betul. Buat fail teks bernama pelajar.txt dengan kandungan berikut. Di sini, lajur pertama mengandungi teks dua perkataan.
Pelajar.txt
Kaniz Fatema 30ikakumpulanAbir Hossain 35ikakumpulan
John Abraham 40ikakumpulan
Jalankan arahan awk tanpa pembatas. Bahagian pertama lajur pertama akan dicetak.
$awk '{cetak $ 1}'pelajar.txtJalankan perintah awk dengan pembatas berikut. Bahagian penuh lajur pertama akan dicetak.
$awk -F '\ s \ s' '{cetak $ 1}'pelajar.txtPengeluaran:
awk untuk mencetak ruangan terakhir
$ (NF) pemboleh ubah boleh digunakan untuk mencetak lajur terakhir dari sebarang fail. Perintah awk berikut akan mencetak bahagian terakhir dan bahagian penuh pada lajur terakhir para pelajar.txt fail.
$awk '{cetak $ (NF)}'pelajar.txt$awk -F '\ s \ s' '{cetak $ (NF)}'pelajar.txt
Pengeluaran:
awk dengan grep
grep adalah satu lagi perintah Linux yang berguna untuk mencari kandungan dalam fail berdasarkan ungkapan biasa. Cara kedua perintah awk dan grep dapat digunakan bersama ditunjukkan dalam contoh berikut. cengkaman arahan digunakan untuk mencari maklumat id pekerja, ‘ 1002 Dari pekerja.txt fail. Output perintah grep akan dihantar ke awk sebagai input data. Bonus 5% akan dikira dan dicetak berdasarkan gaji id pekerja, ' 1002 ' dengan arahan awk.
$kucingpekerja.txt$cengkaman '1002'pekerja.txt| awk -F ' t' '{print $ 2' akan mendapat $ '($ 3 * 5) / 100' bonus '}'
Pengeluaran:
awk dengan fail BASH
Seperti arahan Linux yang lain, perintah awk juga dapat digunakan dalam skrip BASH. Buat fail teks bernama pelanggan.txt dengan kandungan berikut. Setiap baris fail ini mengandungi maklumat mengenai empat bidang. Ini adalah ID, Nama, alamat dan nombor telefon bimbit pelanggan yang dipisahkan oleh '/ '.
pelanggan.txt
AL4934 / Charles M Brunner / 4838 Beeghley Street, Huntsville, Alabama / 256-671-7942CA5455 / Virginia S Mota / 930 Bassel Street, VALLECITO, California / 415-679-5908
IL4855 / Ann A Neale / 1932 Patterson Fork Road, Chicago, Illinois / 773-550-5107
Buat fail bash bernama item_search.bash dengan skrip berikut. Menurut skrip ini, nilai keadaan akan diambil dari pengguna dan dicari di pelanggan.txt fail oleh cengkaman arahan dan diteruskan ke perintah awk sebagai input. Awk akan membaca 2nd dan 4ika bidang setiap baris. Sekiranya nilai input sepadan dengan nilai keadaan pelanggan.txt fail maka ia akan mencetak pelanggan nama dan nombor telefon jika tidak, ia akan mencetak mesej Tidak dijumpai pelanggan .
item_search.bash
#! / bin / bashmembuang 'Masukkan nama negeri:'
membacanegeri
pelanggan='cengkaman '$ negeri'pelanggan.txt| awk -F '/' '{print' Nama Pelanggan: '$ 2,',
No Mudah Alih: '$ 4}''
sekiranya [ 'pelanggan $' !='' ];kemudian
membuang pelanggan $
yang lain
membuang 'Tiada pelanggan dijumpai'
menjadi
Jalankan arahan berikut untuk menunjukkan hasilnya.
$kucingpelanggan.txt$bashitem_search.bash
Pengeluaran:
awk dengan sed
Alat carian Linux yang lain adalah sed . Perintah ini dapat digunakan untuk mencari dan mengganti teks dari fail apa pun. Contoh berikut menunjukkan penggunaan arahan awk dengan sed arahan. Di sini, arahan sed akan mencari semua nama pekerja bermula dengan ‘ J 'Dan meneruskan arahan awk sebagai input. awk akan mencetak pekerja nama dan ID selepas memformat.
$kucingpekerja.txt$sed -n '/ J / p'pekerja.txt| awk -F ' t' '{printf'% s (% s) n ', $ 2, $ 1}'
Pengeluaran:
Kesimpulan:
Anda boleh menggunakan perintah awk untuk membuat berbagai jenis laporan berdasarkan data tabel atau yang dipisahkan setelah menyaring data dengan betul. Harap, anda akan dapat mengetahui bagaimana perintah awk berfungsi setelah mengamalkan contoh yang ditunjukkan dalam tutorial ini.