Ketahui Mengenai Awk: Alat Pemprosesan Teks Paling Kuat Pernah?

Pendedahan: Sokongan anda membantu mengekalkan laman web ini! Kami memperoleh bayaran rujukan untuk beberapa perkhidmatan yang kami cadangkan di halaman ini.


Awk adalah alat pemprosesan teks terhebat yang anda tidak tahu bahawa anda perlukan. Tetapi jika anda bekerja dengan banyak data, anda mungkin telah memikirkan hal-hal seperti, “Alangkah baiknya mengekstrak lajur data kedua dan kelima dari jadual ini.” Dan ini, dalam bentuk paling mudah, itulah yang dilakukan oleh Awk.

Sedikit Sejarah

Pada hari-hari sebelum kebanyakan orang mengetahui apa itu pangkalan data hubungan – dan hampir dua dekad sebelum pembangunan MySQL – banyak data disimpan dalam fail teks. Sebenarnya, banyak data masih disimpan dengan cara itu. Itu benar terutama pada sistem operasi Unix. Sebagai contoh, fail Unix / etc / passwd hanyalah fail teks dengan satu baris untuk setiap pengguna pada sistem, dan setiap medan untuk pengguna dipisahkan oleh titik dua. Sebagai contoh:

pentadbir: *: 1001: 2001: Pentadbir: / home / root: / home / sh
brian: *: 1002: 2002: Brian Kernighan: / rumah / brian: / rumah / bash

Pada sistem besar, fail passwd seperti itu boleh mengandungi ribuan baris. Anda dapat membayangkan ada kalanya anda menginginkan senarai lengkap nama orang yang mempunyai akaun di komputer anda. Dalam kes ini, itu adalah bidang ke-5. Jadi pada tahun 1977, tiga pengaturcara membuat program umum untuk melakukannya. Mereka adalah: Alfred Aho, Peter Weinberger, dan Brian Kernighan. Awal mereka AWK adalah bagaimana Awk mendapat namanya.

Awk Contoh

Secara lalai, Awk menganggap bahawa medan dipisahkan oleh watak ruang. Tetapi anda boleh menyuruh Awk menggunakan watak yang berbeza dengan menggunakan bendera -F (atau –field-separator) untuk memberi Awk pemisah medan yang berbeza. Dalam kes / etc / passwd, kami ingin menggunakan watak “:”.

Memandangkan watak pemisah, Awk memberikan medan pertama kepada pemboleh ubah $ 1, medan kedua ke pemboleh ubah $ 2, dan seterusnya. Seluruh baris diberikan kepada $ 0. Sekiranya ini kelihatan biasa, mungkin kerana ini adalah bagaimana skrip shell Bourne dan Bash menguruskan parameter baris perintah.

Walaupun skrip Awk dapat dimasukkan ke dalam fail, skrip Awk biasanya diletakkan di baris perintah sebagai sebahagian dari perintah Awk. Berikut adalah arahan awk mudah yang akan mengeluarkan semua nama pengguna dan nama sebenar yang disenaraikan dalam fail / etc / passwd:

awk -F: ” / etc / passwd

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

pentadbir pentadbir
brian Brian Kernighan

Ini semudah program Awk seperti yang ada. Tetapi anda mungkin dapat melihat bahawa ini sahaja sangat kuat. Selalunya, orang akan mementingkan fail seperti itu ke dalam spreadsheet, menghapus lajur yang tidak diperlukan, dan kemudian menyimpan hasilnya sebagai fail teks baru. Itu membebankan apabila anda dapat melakukan perkara yang sama dengan Awk dalam beberapa saat. Dan ini baru permulaan. Anda boleh membuat output bersyarat; anda dapat mengawal output sepenuhnya; jika anda berurusan dengan data berangka, anda boleh melakukan pengiraan di atasnya; dan banyak lagi.

Sumber Awk

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

Tutorial Dalam Talian

Berikut adalah beberapa tutorial yang bermula dari awal dan membawa anda ke aspek bahasa yang paling penting. Mana yang paling berguna untuk anda bergantung kepada anda.

  • Tutorial Grymoire Awk: ini adalah pengenalan Bruce Barnett yang sangat baik untuk Awk. Lihat semua tutorial Unix ini.
  • Benang biasa: Awk by Contoh: ini dari IBM, dan memberikan cara yang tidak menyakitkan untuk belajar Awk. Pastikan anda melihat Bahagian 2 setelah anda selesai dengannya.
  • Awk Tutorial: ini adalah pengenalan Tutorial Point untuk Awk yang membawa anda melalui memuat turun dan memasangnya di mesin Linux.
  • Awk Primer: tutorial ini berjalan dengan cepat, tetapi jika anda selesa dengan skrip shell atau anda telah menggunakan Awk pada masa lalu, itu adalah pilihan yang baik.

Buku

Terdapat sebilangan besar buku yang baik yang menjadi asas bagi Awk.

  • Bahasa Pengaturcaraan Awk oleh Aho dan Kernighan: ini adalah buku asal mengenai Awk. Tetapi tidak seperti kebanyakan buku oleh pemaju asal, buku ini benar-benar baik dan senang difahami.
  • Sedih & Awk by Dougherty dan Robbins: ini adalah klasik yang berkaitan dengan Awk dan juga penyunting aliran (sed). Kedua-duanya sering digunakan bersama. Yang menarik juga ialah Sed and Awk: Pocket Reference setelah anda selesa dengan sistemnya.
  • Pengaturcaraan AWK: Soalan dan Jawapan oleh George Duckett: ini adalah buku Kindle yang menarik yang lebih kurang buku masakan. Ini merangkumi banyak soalan besar yang akan meluaskan cara anda memikirkan Awk dan cara yang anda fikir dapat digunakan.
  • Pengaturcaraan awk yang berkesan: Pemprosesan Teks Universal dan Pemadanan Corak oleh Arnold Robbins: ini seperti kesinambungan dari The Awk Programming Lanuage. Ia semakin mendalam ke dalam bahasa dan memfokuskan pada versi Gnu dari Awk, Gawk.

Pelaksanaan Awk

Terdapat sebilangan besar pelaksanaan Awk sejak yang pertama pada tahun 1977. Sebenarnya, pada tahun 1985 (sebelum The Awk Programming Language diterbitkan), Awk telah diperluas. Versi itu sering disebut sebagai “Awk baru” atau nawk. Terdapat beberapa versi yang lebih popular sekarang ini.

  • Gawk: ini adalah pelaksanaan Awn Project Gnu. Ia sangat popular dan menyokong bahasa lain lebih baik daripada versi lain.
  • BWK: ini adalah “satu kebenaran Awk,” kerana ini adalah yang digunakan untuk The Awk Programming Lanuage. Ia digunakan secara meluas di FreeBSD.
  • Mawk: ini adalah versi yang awalnya ditulis oleh Mike Brennan, tetapi dikekalkan dan dikemas kini oleh Thomas Dickey sejak 2009. Fokus adalah pada kepantasan.
  • BusyBox: ini adalah alat umum yang menyediakan sejumlah alat Unix yang dipermudahkan, termasuk Awk.

Forum Dalam Talian

Kadang kala, anda hanya perlu bertanya. Dan terdapat banyak orang di internet yang mengenali Awk dengan baik. Berikut adalah beberapa tempat yang lebih baik untuk dijawab untuk menjawab soalan anda.

  • Comp.lang.awk Kumpulan Google: ini adalah forum yang agak aktif yang patut disemak.
  • Soalan Stack Overflow Awk: ini adalah halaman soalan terbaru yang ditandai sebagai kaitan dengan Awk. Ini adalah rujukan dan tempat yang baik untuk mengemukakan soalan anda sendiri.
  • Awk Reddit: ini adalah subreddit untuk Awk. Ia tidak terlalu aktif, tetapi terdapat banyak orang berpengetahuan di sekitarnya, dan ini adalah tempat yang baik untuk mendapatkan jawapan.

Ringkasan

Awk adalah bahasa yang bagus untuk pemprosesan teks. Dan ia dapat melakukan perkara yang luar biasa jika anda ingin mendorong bahasa dengan cukup jauh. Pada masa yang sama, sintaksnya cukup mudah, sehingga dapat dengan cepat menjadi sebahagian dari set alat kerja anda. Sumber yang disajikan di sini semestinya memberikan semua pertolongan yang anda perlukan.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map