Belajar Linux

Perintah awk Linux dengan 10 contoh

Perintah awk Linux dengan 10 contoh

Sistem komputer selalu digunakan untuk menganalisis data berharga yang disimpan dalam fail teks sederhana. Sebaliknya, sistem komputer sendiri diuruskan melalui fail log. Perkara yang berpotensi biasa terjadi dalam kedua situasi ini ialah mereka menyimpan sejumlah besar data, yang sering perlu diselaraskan sebelum benar-benar membaca data; jika tidak, ia hanya membingungkan.

Sebagai contoh, jika anda membaca beberapa data yang disusun dalam bentuk jadual, anda mahu beberapa lajur, anda tidak mahu yang lain.

Keperluan ini sangat mustahak, dan akibatnya, Projek GNU memegang alat yang luar biasa yang membantu pengguna menyaring dan mengekstrak data untuk pengalaman yang lebih baik. Alat itu adalah AWK.

Sejarah

AWK sebenarnya adalah bahasa pengaturcaraan yang dikhaskan untuk pemprosesan teks. Ia digunakan untuk pengambilan data dalam corak tertentu. Ia dikembangkan pada tahun 1970-an oleh Bell Labs, oleh Alfred Aho, Peter Weinberger, dan Brian Kernighan (inisial nama keluarga mereka melahirkan nama tersebut). Perkembangan awk tidak berhenti di situ. Versi baru diperkenalkan pada tahun 1985, yang membawa perubahan baru pada perintah awk, termasuk kemampuan untuk menangani banyak aliran input, ungkapan biasa yang dihitung, fungsi yang ditentukan pengguna, dan banyak lagi! Ringkasnya, kemas kini menjadikannya bahasa pengaturcaraan yang lebih hebat.

Awk mempunyai pelaksanaan yang berbeza. Untuk memastikan bahawa ada implementasi yang tepat yang menawarkan pendekatan standar, Paul Rubin menulis gawk pada tahun 1986. Ia berfungsi dengan baik dengan awk yang lebih baru.

Selain itu, pada 1989 Sistem V Release, fitur baru ditambahkan. Pembangun juga bertambah baik pada sudut gelapnya, menjadikannya lebih baik bagi pengaturcara dan pengguna untuk menggunakannya. Perubahan terbaru berlaku pada tahun 1997 ketika awk melihat akses rangkaian - memberi pengguna kemampuan untuk menyelesaikan masalah dari jauh.

Penulisan semula terbaru dilakukan pada tahun 2011 ketika John Haque menulis semula internal gawk.

Perkara yang boleh anda lakukan dengan AWK

Sekarang, sudah semestinya jelas mengenai kemampuan AWK. Ini adalah bahasa skrip tujuan umum yang membolehkan anda mengendalikan pemprosesan teks. Pengguna lanjutan juga dapat menggunakannya untuk analisis dan pelaporan.

AWK tidak seperti bahasa pengaturcaraan lain kerana berdasarkan data, bukan bahasa pengaturcaraan prosedural. Ini bermakna anda dapat menggunakannya dengan berkesan untuk melakukan tindakan terhadap input teks. Singkatnya, anda dapat menggunakannya untuk mengubah data, memasukkannya, dan juga mengirimkannya sebagai output standard.

Ringkasnya, anda boleh menggunakan AWK untuk melakukan operasi mudah seperti membelah setiap baris input menjadi medan, mengimbas fail baris demi baris, melakukan tindakan pada garis pertandingan, dan sebagainya! Perintah awk juga berguna untuk laporan yang diformat prosedur dan mengubah fail data. Selain itu, anda juga mendapat akses ke konstruk pengaturcaraan seperti bersyarat & gelung, operasi rentetan & aritmetik, dan format output baris.

Bagaimana awk berfungsi

Di bahagian ini, kita akan belajar bagaimana awk berfungsi. Penting untuk mengetahui bahawa awk mempunyai pelaksanaan yang berbeza. Untuk memastikan bahawa kami berada di halaman yang sama, kami akan membincangkan dan menggunakan pelaksanaan GNU - yang terkenal sebagai gawk. Dalam kebanyakan kes, gawk dihubungkan dengan jurubahasa awk.

Untuk mendapatkan pemahaman yang baik, pertama-tama kita perlu memahami Rekod dan medan.

Sudah diketahui bahawa awk dapat memproses aliran teks dan fail data. Untuk memproses data, input dibahagikan kepada bidang dan rekod. Untuk memastikan awk tidak terbeban, satu rakaman diproses pada masa tertentu sehingga akhir input tercapai. Selanjutnya, rekod dibahagikan kepada bahagian mudah menggunakan pemisah rekod menggunakan watak. Juga, setiap rakaman dipisahkan menggunakan watak barisan baru. Ini bermaksud bahawa setiap baris boleh disebut sebagai rekod.

Anda boleh memilih untuk menetapkan pemisah rekod baru menggunakan pemboleh ubah RS.

Seterusnya muncul pemisah yang difailkan. Seperti biasa, setiap rekod mempunyai medan, dan mereka dipisahkan menggunakan pemisah medan. Pemisah medan boleh menjadi ruang kosong, tab, watak barisan baru, dan spasi. Juga, setiap medan dirujuk menggunakan simbol $, sedangkan nombor medan bermula dengan 1. Ini bermaksud bahawa medan pertama dapat dilambangkan sebagai $ 1 sedangkan medan kedua dilambangkan sebagai $ 2. Dengan cara ini, medan ke-9 dapat dilambangkan sebagai $ nf.

Program awk

Aspek kedua awk adalah program awk. Sekiranya anda ingin bekerja dengan awk, anda perlu menulis program yang membolehkan perintah melaksanakan atau memproses teks. Program awk menawarkan banyak fungsi menggunakan peraturan dan fungsi yang ditentukan pengguna. Peraturan berfungsi dengan pasangan tindakan atau satu pola, dan peraturan dipisahkan menggunakan titik koma atau garis baru.

Sekiranya anda tertanya-tanya, program awk akan kelihatan seperti di bawah.

corak tindakan corak tindakan… 

Ringkasnya, program awk berfungsi dengan memadankan rekod berdasarkan corak. Sekiranya corak dijumpai dalam rekod, maka ia akan memprosesnya. Sekiranya tidak, maka keseluruhan rekod dipadankan untuk memastikan sesuatu sesuai dengan peraturan.

Contoh arahan awk

Sekarang kita mempunyai pemahaman yang baik tentang perintah awk dan cara kerjanya, sekarang saatnya kita memeriksa beberapa contoh perintah awk.

Sekiranya anda belum pernah menggunakan awk, anda mungkin ingin mengetahui bahawa awk boleh digunakan dengan pilihan seperti di bawah:

fail program pilihan awk

Pilihan yang boleh anda gunakan dengan awk termasuk yang berikut:

Contoh 1: Baca Skrip AWK

Salah satu cara yang paling biasa menggunakan awk adalah membaca skrip. Sebagai pengguna Linux, anda boleh membuat skrip awk menggunakan tanda petik tunggal.

Untuk melakukannya, anda perlu menaip perintah berikut di terminal.

$ awk 'print "Selamat Datang di Hello, World - AWK tutorial"'

Dalam contoh di atas, apa yang anda taipkan, ia akan dikembalikan ke skrin itu sendiri. Perintah akan terus dilaksanakan sehingga anda mengakhirinya dengan menekan CTRL + D.

Contoh 2: Menggunakan Pelbagai Perintah

Kegunaan awk yang lain adalah menggunakan pelbagai arahan. Sebagai pengguna, anda mungkin mahu menggabungkan dua perintah awk menjadi satu untuk mendapatkan hasil yang diinginkan. Dalam contoh ini, kita akan mengeluarkan rentetan dan kemudian mengganti kata kedua dalam rentetan dengan input baru.

$ gema "Hello World" | awk '$ 2 = "Alam semesta; cetak $ 0"'

Dalam contoh di atas, kami pertama kali menggema, "Hello, World" ke terminal. Seterusnya, kami menggabungkan perintah awk yang lain di mana kami menggantikan perkataan kedua dengan Universe - dan akhirnya mengeluarkan rentetan, yang merupakan Hello Universe.

Contoh 3: Menggunakan Pembolehubah

Pemboleh ubah membolehkan anda menyimpan maklumat dan mengaksesnya. Sekiranya anda pernah menggunakan bahasa pengaturcaraan sebelumnya, anda pasti mengetahui tentangnya. Sekiranya awk, anda menggunakannya untuk memproses fail teks. Dengan menggunakan pemboleh ubah, anda dapat mengakses bidang data tertentu dalam fail seperti di bawah.

Untuk tujuan ini, kami membuat fail teks baru, mynewfile, di mana kami memasukkan beberapa baris rawak tetapi cantik.

Seterusnya, anda perlu menjalankan perintah, seperti gambar di bawah.

awk 'print $ 1' mynewfile

Seperti yang anda lihat, ia mengeluarkan pemboleh ubah tertentu yang menunjukkan medan itu dari fail. Anda juga harus melihat ralat yang saya buat.

Contoh 4: Pemprosesan AWK

Dengan arahan awk, anda boleh menambah proses awal. Untuk melakukannya, anda perlu menggunakan kata kunci BEGIN.

Sekiranya anda membaca dengan teliti, kami membuat fail baru di atas. Mari cuba menggunakan praproses awk untuk mempamerkan kandungan fail.

Perintah untuknya adalah seperti di bawah.

awk 'awk BEGIN print "Kandungan fail:"> print $ 0', mynewfile

Tangkapan skrin contoh di atas tidak betul. Saya menggunakan "Permulaan" dan bukan "BEGIN", itulah sebabnya anda tidak melihat pernyataan cetak dijalankan. Saya meninggalkan ini untuk anda mencuba dan melihat bagaimana hasil anda!

Contoh 5: Membaca Skrip Dari Fail

Yang ini sukar. Di sini, anda boleh menggunakan skrip awk untuk membaca fail.

Kami membuat skrip baru yang mengandungi yang berikut.

alam semesta print $ 1 "bermula pada" $ 6 "

Kami menyimpan fail tersebut sebagai naskhah berita.

Sekarang, jalankan arahan berikut di terminal.

$ awk -F: -f naskhah berita / etc / passwd

Menarik, betul!

Contoh 6: Pemprosesan pasca AWK

Seterusnya, kita melihat proses pemprosesan AWK. Ia berfungsi serupa dengan pra-pemprosesan, tetapi kali ini, pasca pemprosesan menggunakan perintah TAMAT.

$ awk 'BEGIN print "Kandungan fail bermula sekarang:">> print $ 0>> TAMAT cetak "Fail berakhir"' mynewfile

Contoh 7: Pemboleh ubah yang ditentukan pengguna

Anda juga boleh menggunakan pemboleh ubah dalam perintah awk tanpa menggunakan angka atau tanda dolar.

Berikut adalah contoh.

$ awk 'BEGIN test = "Selamat Datang ke FossLinux Awesome Linux Family" ujian cetak'

Contoh 8: Fungsi terbina dalam

Perintah awk juga berguna dengan fungsi bawaan mereka. Sebagai contoh, anda boleh menggunakan fungsi matematik, dan juga fungsi String.

$ awk 'BEGIN x - "fossLinux"; pencetak cetak (x) '
$ awk 'BEGIN x = exp (35); cetak x '

Contoh 9: Memformat Percetakan

Anda juga boleh memformat fungsi printf yang disertakan dengan awk. Terdapat banyak pengubah yang boleh anda gunakan. Sebagai contoh, anda boleh menggunakan c untuk mencetak sebagai rentetan; anda juga boleh menggunakan d untuk nilai integer, dan seterusnya.

$ awk 'BEGIN x = 200 * 200 printf "Hasilnya ialah:% e \ n", x'

Contoh 10: Perintah Berstruktur

Anda juga boleh menggunakan perintah berstruktur seperti jika, lain-lain, sementara, atau untuk gelung. Mari lihat contoh di bawah untuk perintah if.

$ awk 'if ($ 1> 20) cetak $ 2' mynewfile

Kesimpulannya

Ini membawa kita ke akhir tutorial arahan awk kami. Oleh itu, adakah anda menganggapnya berguna, dan adakah anda akan menggunakannya untuk kerja anda?? Komen di bawah dan beritahu kami.

Vulkan untuk Pengguna Linux
Dengan setiap kad grafik generasi baru, kami melihat pembangun permainan mendorong had kesetiaan grafik dan semakin dekat dengan fotorealisme. Tetapi ...
OpenTTD vs Simutrans
Membuat simulasi pengangkutan anda sendiri boleh menyeronokkan, santai dan sangat menarik. Itulah sebabnya anda perlu memastikan bahawa anda mencuba s...
Tutorial OpenTTD
OpenTTD adalah salah satu permainan simulasi perniagaan yang paling popular di luar sana. Dalam permainan ini, anda perlu membuat perniagaan pengangku...