GNU/Linux >> Belajar Linux >  >> Linux

Perintah awk Linux dengan 10 contoh

Sistem komputer selalu digunakan untuk menganalisis data berharga yang disimpan dalam file teks sederhana. Pada gilirannya, sistem komputer itu sendiri dikelola melalui file log. Apa yang berpotensi umum dalam dua situasi ini adalah bahwa mereka menyimpan sejumlah besar data, yang seringkali perlu disederhanakan sebelum benar-benar membaca data; jika tidak, itu hanya membingungkan.

Misalnya, jika Anda membaca beberapa data yang disusun dalam bentuk tabel, Anda menginginkan beberapa kolom, Anda tidak menginginkan yang lain.

Persyaratan ini sangat sulit bahkan di masa lalu, dan akibatnya, Proyek GNU memiliki alat luar biasa yang membantu pengguna menyaring dan mengekstrak data untuk pengalaman yang lebih baik. Alat itu adalah AWK .

Sejarah

AWK sebenarnya adalah bahasa pemrograman yang didedikasikan untuk pemrosesan teks. Ini digunakan untuk ekstraksi data dalam pola tertentu. Ini dikembangkan pada 1970-an oleh Bell Labs, oleh Alfred Aho, Peter Weinberger, dan Brian Kernighan (inisial nama keluarga mereka melahirkan nama itu). Perkembangan awk tidak berhenti di situ. Versi baru diperkenalkan pada tahun 1985, yang membawa perubahan baru pada perintah awk, termasuk kemampuan untuk menangani beberapa aliran input, ekspresi reguler yang dihitung, fungsi yang ditentukan pengguna, dan banyak lagi! Singkatnya, pembaruan menjadikannya bahasa pemrograman yang lebih kuat.

Awk memiliki implementasi yang berbeda. Untuk memastikan bahwa ada implementasi yang tepat yang menawarkan pendekatan standar, Paul Rubin menulis gawk pada tahun 1986. Ini bekerja dengan baik dengan awk yang lebih baru.

Selain itu, pada System V Release tahun 1989, fitur-fitur baru ditambahkan. Pengembang juga meningkatkan sudut gelapnya, membuatnya lebih baik bagi pemrogram dan pengguna untuk menggunakannya. Perubahan terakhir terjadi pada tahun 1997 ketika awk melihat akses jaringan — memberikan pengguna kemampuan untuk memecahkan masalah dari jarak jauh.

Penulisan ulang terbaru dilakukan pada tahun 2011 ketika John Haque menulis ulang bagian internal yang gawk.

Hal yang dapat Anda lakukan dengan AWK

Sekarang, seharusnya sudah jelas apa yang mampu dilakukan AWK. Ini adalah bahasa skrip tujuan umum yang memungkinkan Anda menangani pemrosesan teks. Pengguna tingkat lanjut juga dapat menggunakannya untuk analisis dan pelaporan.

AWK tidak seperti bahasa pemrograman lain karena berbasis data, bukan bahasa pemrograman prosedural. Itu berarti Anda dapat menggunakannya secara efektif untuk melakukan tindakan terhadap input teks. Singkatnya, Anda dapat menggunakannya untuk mengubah data, memasukkannya, dan juga mengirimkannya sebagai keluaran standar.

Singkatnya, Anda dapat menggunakan AWK untuk melakukan operasi sederhana seperti membagi setiap baris input menjadi beberapa bidang, memindai file baris demi baris, melakukan tindakan pada baris yang cocok, dan seterusnya! Perintah awk juga berguna untuk prosedur laporan yang diformat dan mengubah file data. Selain itu, Anda juga mendapatkan akses ke konstruksi pemrograman seperti kondisional &loop, operasi string &aritmatika, dan format baris output.

Cara kerja awk

Di bagian ini, kita akan mempelajari cara kerja awk. Penting untuk diketahui bahwa awk memiliki implementasi yang berbeda. Untuk memastikan bahwa kita berada di halaman yang sama, kita akan membahas dan menggunakan implementasi GNU — yang dikenal sebagai gawk. Dalam kebanyakan kasus, gawk disinkronkan dengan awk interpreter.

Untuk mendapatkan pemahaman yang baik, pertama-tama kita perlu memahami Record dan field.

Diketahui bahwa awk dapat memproses aliran tekstual dan file data. Untuk mengolah data, input dibagi menjadi field dan record. Untuk memastikan bahwa awk tidak kewalahan, satu record diproses pada waktu tertentu hingga akhir input tercapai. Selanjutnya, record dibagi lagi menjadi bagian-bagian sederhana dengan menggunakan pemisah record menggunakan karakter. Juga, setiap record dipisahkan menggunakan karakter baris baru. Ini berarti bahwa setiap baris dapat disebut sebagai record.

Anda dapat memilih untuk menyetel pemisah record baru menggunakan variabel RS.

Berikutnya adalah pemisah yang diajukan. Seperti biasa, setiap record memiliki field, dan dipisahkan menggunakan pemisah field. Pemisah bidang dapat berupa spasi, tab, karakter baris baru, dan spasi. Juga, setiap bidang direferensikan menggunakan simbol $, sedangkan nomor bidang dimulai dengan 1. Ini berarti bahwa bidang pertama dapat dilambangkan sebagai $1 sedangkan bidang kedua dilambangkan sebagai $2. Dengan cara ini, bidang ke-n dapat dilambangkan sebagai $nf.

Program awk

Aspek kedua dari awk adalah program awk. Jika Anda ingin bekerja dengan awk, Anda perlu menulis program yang memungkinkan perintah mengeksekusi atau memproses teks. Program awk menawarkan banyak fungsi menggunakan aturan dan fungsi yang ditentukan pengguna. Aturan bekerja dengan pasangan tindakan atau satu pola, dan aturan dipisahkan menggunakan titik koma atau baris baru.

Jika Anda bertanya-tanya, program awk akan terlihat seperti di bawah ini.

pattern { action }
pattern { action }
....

Singkatnya, program awk bekerja dengan mencocokkan catatan berdasarkan pola. Jika pola ditemukan dalam catatan, maka itu akan memprosesnya. Jika tidak, maka seluruh catatan dicocokkan untuk memastikan bahwa ada sesuatu yang cocok berdasarkan aturan.

Contoh Perintah awk

Sekarang setelah kita memiliki pemahaman yang baik tentang perintah awk dan cara kerjanya, sekarang saatnya bagi kita untuk memeriksa beberapa contoh perintah awk.

Jika Anda belum pernah menggunakan awk sebelumnya, Anda mungkin ingin tahu bahwa awk dapat digunakan dengan opsi seperti di bawah ini:

awk options program file

Opsi yang dapat Anda gunakan dengan awk termasuk yang berikut:

  • – f file:Digunakan untuk menentukan file yang berisi skrip awk
  • -F fs:Digunakan untuk menentukan pemisah file.
  • -v var=value:Digunakan untuk mendeklarasikan variabel.

Contoh 1:Membaca Skrip AWK

Salah satu cara paling umum menggunakan awk adalah membaca skrip. Sebagai pengguna Linux, Anda dapat membuat skrip awk menggunakan penanda kutip tunggal.

Untuk melakukannya, Anda perlu mengetikkan perintah berikut di terminal.

$awk '{print "Welcome to Hello, World -- AWK tutorial"}'

Dalam contoh di atas, apa yang Anda ketik, itu akan dikembalikan ke layar itu sendiri. Perintah akan terus dijalankan sampai Anda mengakhirinya dengan menekan CTRL + D.

Contoh 2:Menggunakan Beberapa Perintah

Penggunaan umum lainnya dari awk adalah menggunakan banyak perintah. Sebagai pengguna, Anda mungkin ingin menggabungkan dua perintah awk menjadi satu untuk mendapatkan hasil yang diinginkan. Dalam contoh ini, kita akan menampilkan string dan kemudian mengganti kata kedua dalam string dengan input baru.

$echo "Hello World" | awk '{$2 = "Universe; print $0"}'

Dalam contoh di atas, pertama-tama kita menggemakan, "Halo, Dunia" ke terminal. Selanjutnya, kami menggabungkan perintah awk lain di mana kami mengganti kata kedua dengan Universe — dan akhirnya mengeluarkan string, yaitu Hello Universe.

Contoh 3:Menggunakan Variabel

Variabel memungkinkan Anda menyimpan informasi dan mengaksesnya. Jika Anda pernah menggunakan bahasa pemrograman sebelumnya, Anda pasti tahu tentang mereka. Dalam kasus awk, Anda menggunakannya untuk memproses file teks. Dengan menggunakan variabel, Anda dapat mengakses bidang data tertentu di dalam file seperti di bawah ini.

Untuk tujuan ini, kami membuat file teks baru, mynewfile, tempat kami memasukkan beberapa baris acak namun indah.

Selanjutnya, Anda perlu menjalankan perintah, seperti yang ditunjukkan di bawah ini.

awk '{print $1}' mynewfile

Seperti yang Anda lihat, itu mengeluarkan variabel tertentu yang menunjukkan bidang itu dari file. Juga, Anda akan melihat kesalahan yang saya buat.

Contoh 4:prapemrosesan AWK

Dengan perintah awk, Anda dapat menambahkan preprocessing. Untuk melakukannya, Anda perlu menggunakan kata kunci BEGIN.

Jika Anda membaca dengan seksama, kami membuat file baru di atas. Mari kita coba menggunakan awk preprocessing untuk menampilkan konten file.

Perintahnya seperti di bawah ini.

awk 'awk BEGIN {print "The content of the file:"}
> {print $0}' , mynewfile

Contoh tangkapan layar di atas tidak benar. Saya menggunakan "Mulai" alih-alih "MULAI," itulah sebabnya Anda tidak melihat pernyataan cetak dijalankan. Saya meninggalkan ini untuk Anda coba dan lihat bagaimana hasilnya!

Contoh 5:Membaca Script Dari File

Yang satu ini rumit. Di sini, Anda dapat menggunakan skrip awk untuk membaca file.

Kami membuat skrip baru yang berisi berikut ini.

{print $1 "universe starts at " $6"}

Kami menyimpan file sebagai skrip baru.

Sekarang, jalankan perintah berikut di terminal.

$awk -F: -f newscript /etc/passwd

Menarik, kan!

Contoh 6:Pasca-pemrosesan AWK

Selanjutnya, kita melihat pasca-pemrosesan AWK. Cara kerjanya mirip dengan pra-pemrosesan, tetapi kali ini, pasca-pemrosesan menggunakan perintah END.

$ awk 'BEGIN {print "The file content starts now:"}
>
> {print $0}
>
> END {print "The File ends"}' mynewfile

Contoh 7:Variabel yang ditentukan pengguna

Anda juga dapat menggunakan variabel dalam perintah awk tanpa menggunakan angka atau tanda dolar.

Di bawah ini adalah contohnya.

$awk '
BEGIN{
test = "Welcome to FossLinux Awesome Linux Family"
print test
}
'

Contoh 8:Fungsi Bawaan

Perintah awk juga berguna dengan fungsi bawaannya. Misalnya, Anda dapat menggunakan fungsi matematika, dan juga fungsi String.

$ awk 'BEGIN {x - "fossLinux"; print toupper(x)}'
$ awk 'BEGIN {x=exp(35); print x}'

Contoh 9:Memformat Pencetakan

Anda juga dapat memformat fungsi printf yang disertakan dengan awk. Ada banyak modifier yang bisa Anda gunakan. Misalnya, Anda dapat menggunakan c untuk mencetak sebagai string; Anda juga dapat menggunakan d untuk nilai integer, dan seterusnya.

$ awk 'BEGIN {
x = 200 * 200
printf "The result is: %e\n", x
}'

Contoh 10:Perintah Terstruktur

Anda juga dapat menggunakan perintah terstruktur seperti if, else, while, atau for loop. Mari kita lihat contoh di bawah untuk perintah if.

$ awk '{if ($1 > 20) print $2}' mynewfile

Kesimpulan

Ini membawa kita ke akhir tutorial perintah awk kita. Jadi, apakah Anda merasa itu berguna, dan apakah Anda akan menggunakannya untuk pekerjaan Anda? Beri komentar di bawah dan beri tahu kami.


Linux
  1. Perintah Tee Linux dengan Contoh

  2. Perintah kepala Linux dengan Contoh

  3. Perintah JQ di Linux dengan Contoh

  1. Perintah wc Linux dengan Contoh

  2. Perintah sortir Linux dengan Contoh

  3. Perintah Echo di Linux (Dengan Contoh)

  1. Perintah man di Linux dengan Contoh

  2. Perintah AWK di Linux dengan Contoh

  3. Perintah Curl di Linux dengan Contoh