Pelajari Tentang Awk: Alat Pemroses Teks Paling Kuat yang Pernah Ada?

Penyingkapan: Dukungan Anda membantu menjaga situs tetap berjalan! Kami mendapatkan biaya referensi untuk beberapa layanan yang kami rekomendasikan pada halaman ini.


Awk adalah alat pemrosesan teks terhebat yang Anda tidak tahu Anda butuhkan. Tetapi jika Anda bekerja dengan banyak data, Anda mungkin berpikir hal-hal seperti, “Akan sangat bagus untuk mengekstrak kolom data kedua dan kelima dari tabel ini.” Dan ini, dalam bentuk yang paling sederhana, adalah apa yang dilakukan Awk.

A Little History

Pada hari-hari sebelum kebanyakan orang tahu apa itu database relasional – dan hampir dua dekade sebelum pengembangan MySQL – banyak data disimpan dalam file teks. Yang benar adalah, banyak data masih tersimpan seperti itu. Itu terutama benar pada sistem operasi Unix. Sebagai contoh, file Unix / etc / passwd hanyalah file teks dengan satu baris untuk setiap pengguna pada sistem, dan setiap bidang untuk pengguna dipisahkan oleh tanda titik dua. Sebagai contoh:

admin: *: 1001: 2001: Administrator: / home / root: / home / sh
brian: *: 1002: 2002: Brian Kernighan: / home / brian: / home / bash

Pada sistem besar, file passwd tersebut dapat berisi ribuan baris. Anda dapat membayangkan bahwa mungkin ada saatnya Anda ingin daftar lengkap nama orang-orang dengan akun di komputer Anda. Dalam hal ini, itu akan menjadi bidang ke-5. Jadi pada tahun 1977, tiga programmer membuat program umum untuk melakukan itu. Mereka adalah: Alfred Aho, Peter Weinberger, dan Brian Kernighan. Dan inisial mereka AWK adalah bagaimana Awk mendapatkan namanya.

Contoh Awk

Secara default, Awk mengasumsikan bahwa bidang dipisahkan oleh karakter spasi. Tetapi Anda bisa memberi tahu Awk untuk menggunakan karakter yang berbeda dengan menggunakan tanda -F (atau –field-separator) untuk memberi Awk pemisah bidang yang berbeda. Dalam kasus / etc / passwd, kita ingin menggunakan karakter “:”.

Dengan karakter separator, Awk memberikan bidang pertama ke variabel $ 1, bidang kedua ke variabel $ 2, dan seterusnya. Seluruh baris ditugaskan ke $ 0. Jika ini terlihat akrab, mungkin karena ini adalah bagaimana skrip Bourne dan Bash mengelola parameter baris perintah.

Walaupun skrip Awk dapat dimasukkan ke dalam file, skrip biasanya ditempatkan pada command-line sebagai bagian dari perintah Awk. Berikut ini adalah perintah awk sederhana yang akan menampilkan semua pengguna dan nama asli dari akun yang terdaftar di file / etc / passwd:

awk -F: ” / etc / passwd

Ini akan menghasilkan output berikut dari contoh / etc / passwd file di atas:

admin Administrator
Brian Brian Kernighan

Ini adalah program Awk sesederhana seperti yang ada. Tetapi Anda mungkin dapat melihat bahwa ini saja sangat kuat. Seringkali, orang-orang akan menganggap penting file seperti itu ke dalam spreadsheet, menghapus kolom yang tidak dibutuhkan, dan kemudian menyimpan hasilnya sebagai file teks baru. Itu merepotkan ketika Anda dapat melakukan hal yang sama dengan Awk dalam beberapa detik. Dan ini baru permulaan. Anda dapat membuat keluaran bersyarat; Anda dapat sepenuhnya mengontrol output; jika Anda berurusan dengan data numerik, Anda dapat melakukan perhitungannya; dan masih banyak lagi.

Sumber Daya Awk

Awk adalah bahasa yang sangat mudah dipelajari. Dan ada banyak sumber daya untuk melakukan hal itu. Kami akan membahas beberapa di bawah ini.

Tutorial Online

Di bawah ini adalah sejumlah tutorial yang dimulai dari awal dan membawa Anda melalui aspek paling penting dari bahasa tersebut. Mana yang menurut Anda paling membantu akan tergantung pada Anda.

  • Grymoire Awk Tutorial: ini adalah pengantar yang sangat baik dari Bruce Barnett untuk Awk. Lihat semua tutorial Unix ini.
  • Utas umum: Awk dengan Contoh: ini dari IBM, dan menyediakan cara yang tidak menyakitkan untuk mempelajari Awk. Pastikan untuk memeriksa Bagian 2 setelah Anda selesai.
  • Awk Tutorial: ini adalah pengenalan Point Tutorial ke Awk yang bahkan membawa Anda melalui pengunduhan dan pemasangannya di mesin Linux.
  • An Awk Primer: tutorial ini berjalan cukup cepat, tetapi jika Anda merasa nyaman dengan skrip shell atau Anda pernah menggunakan Awk di masa lalu, itu adalah pilihan yang baik.

Buku

Ada sejumlah buku bagus yang memberikan dasar untuk Awk.

  • Bahasa Pemrograman Awk oleh Aho dan Kernighan: ini adalah buku asli tentang Awk. Tetapi tidak seperti kebanyakan buku seperti itu oleh pengembang asli, buku ini sangat bagus dan mudah dimengerti.
  • Sed & Awk oleh Dougherty dan Robbins: ini adalah klasik yang berhubungan dengan Awk serta editor aliran (sed). Keduanya sering digunakan bersama. Yang juga menarik adalah Sed dan Awk: Referensi Saku setelah Anda merasa nyaman dengan sistem.
  • Pemrograman AWK: Pertanyaan dan Jawaban oleh George Duckett: ini adalah buku Kindle yang menarik yang kurang lebih merupakan buku masak. Ini mencakup banyak pertanyaan hebat yang akan memperluas cara Anda berpikir tentang Awk dan cara yang menurut Anda dapat digunakan.
  • Pemrograman awk yang efektif: Pemrosesan Teks Universal dan Pencocokan Pola oleh Arnold Robbins: ini seperti kelanjutan dari The Awk Programming Lanuage. Ini semakin dalam ke bahasa dan berfokus pada Awk versi Gnu, Gawk.

Implementasi Awk

Ada sejumlah implementasi Awk sejak yang pertama pada tahun 1977. Faktanya, pada tahun 1985 (sebelum Bahasa Pemrograman Awk diterbitkan), Awk sangat berkembang. Versi itu sering disebut sebagai “awk baru” atau nawk. Ada beberapa versi yang lebih populer saat ini tersedia.

  • Gawk: ini adalah implementasi Awk Proyek Gnu. Ini sangat populer dan mendukung bahasa lain lebih baik daripada versi lain.
  • BWK: ini adalah “satu-satunya kebenaran Awk,” karena ini adalah yang digunakan untuk Bahasa Pemrograman Awk. Ini banyak digunakan pada FreeBSD.
  • Mawk: ini adalah versi yang awalnya ditulis oleh Mike Brennan, tetapi dikelola dan diperbarui oleh Thomas Dickey sejak 2009. Fokusnya adalah pada kecepatan.
  • BusyBox: ini adalah alat umum yang menyediakan sejumlah alat Unix yang disederhanakan, termasuk Awk.

Forum online

Terkadang, Anda hanya perlu mengajukan pertanyaan. Dan ada banyak orang di internet yang mengenal Awk dengan baik. Berikut adalah beberapa tempat yang lebih baik untuk menjawab pertanyaan Anda.

  • Comp.lang.awk Google Group: ini adalah forum yang relatif aktif dan layak untuk dicoba.
  • Pertanyaan Stack Overflow Awk: ini adalah halaman pertanyaan terbaru yang ditandai berkaitan dengan Awk. Ini adalah referensi dan tempat yang tepat untuk mengajukan pertanyaan Anda sendiri.
  • Awk Reddit: ini adalah subreddit untuk Awk. Ini tidak terlalu aktif, tetapi ada banyak orang berpengetahuan di sekitarnya, dan itu adalah tempat yang baik untuk mendapatkan pertanyaan yang dijawab.

Ringkasan

Awk adalah bahasa yang bagus untuk pemrosesan teks. Dan itu dapat melakukan hal-hal luar biasa jika Anda ingin mendorong bahasa cukup jauh. Pada saat yang sama, sintaksnya cukup sederhana, sehingga dapat dengan cepat menjadi bagian dari rangkaian alat kerja Anda. Sumber daya yang disajikan di sini harus menyediakan semua bantuan yang Anda perlukan.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me