GNU/Linux >> Belajar Linux >  >> Linux

AWK Vs NAWK Vs GAWK

Awk adalah bahasa yang kuat untuk memanipulasi dan memproses file teks. Ini sangat membantu ketika baris dalam file teks dalam format rekaman. yaitu Catatan yang berisi beberapa bidang yang dipisahkan oleh pembatas. Bahkan ketika file input tidak dalam format record, Anda masih dapat menggunakan awk untuk melakukan beberapa file dasar dan pemrosesan data. Anda juga dapat menulis logika pemrograman menggunakan awk meskipun tidak ada file input yang perlu diproses.

Singkatnya, AWK adalah bahasa yang kuat, yang berguna untuk melakukan pekerjaan rutin sehari-hari.

Jika Anda baru mengenal awk, mulailah dengan membaca tutorial pengenalan Awk ini yang merupakan bagian dari seri tutorial Awk.

Kurva belajar pada AWK jauh lebih kecil daripada kurva belajar pada bahasa lain. Jika Anda sudah mengetahui program C, Anda akan menghargai betapa sederhana dan mudahnya mempelajari AWK.

AWK awalnya ditulis oleh tiga pengembang — A. Aho, B. W. Kernighan dan P. Weinberger. Jadi, nama AWK berasal dari inisial ketiga developer tersebut.

Berikut ini adalah tiga variasi AWK:

1. Awk

AWK adalah AWK asli yang ditulis oleh A. Aho, B. W. Kernighan dan P. Weinberger.

2. Nakal

NAWK adalah singkatan dari "AWK Baru". Ini adalah Awk versi AT&T.

3. Ngakak

GAWK adalah singkatan dari "GNU AWK". Semua distribusi Linux dilengkapi dengan GAWK. Ini sepenuhnya kompatibel dengan AWK dan NAWK.

Di Linux, mengetik awk atau gawk akan memanggil GAWK. awk ditautkan ke gawk seperti yang ditunjukkan di bawah ini pada sistem Linux.

# ls -l /bin/awk /usr/bin/awk
lrwxrwxrwx 1 root root  4 Jan  5 23:13 /bin/awk -> gawk
lrwxrwxrwx 1 root root 14 Jan  5 23:13 /usr/bin/awk -> ../../bin/gawk

Tabel berikut merangkum berbagai fitur yang tersedia di versi ini. Seperti yang Anda lihat di bawah, gawk adalah superset yang berisi semua fitur awk dan nawk asli.

Awk Vs Nawk Vs Gawk

Unduh perbedaan Awk Vs Nawk Vs Gawk dalam format cheatsheet PDF.

Variabel bawaan dasar berikut FS, OFS, RS, ORS, NR, NF, dan FILENAME tersedia di semua versi awk.

Fitur Deskripsi AWK TIDAK GAWK
FS Pemisah bidang masukan Ya Ya Ya
OFS Pemisah bidang keluaran Ya Ya Ya
RS Pemisah rekaman Ya Ya Ya
ORS Pemisah catatan keluaran Ya Ya Ya
NR Jumlah catatan Ya Ya Ya
NF Jumlah bidang dalam catatan Ya Ya Ya
FILENAME Berisi file input saat ini yang sedang diproses Ya Ya Ya

Semua fitur berikut tidak tersedia di awk asli. Mereka tersedia dalam nawk dan/atau gawk seperti yang ditunjukkan di bawah ini.

Fitur Deskripsi TIDAK GAWK
FNR File “Nomor catatan” Ya Ya
ARGC Total jumlah atau argumen yang diteruskan ke skrip awk Ya Ya
ARGV Array yang berisi semua argumen skrip awk Ya Ya
ARGIND Indeks ke ARGV untuk mengambil nama file saat ini Ya
SUBSEP Pemisah subskrip untuk indeks array Ya Ya
RSTART Fungsi pencocokan menyetel RSTART dengan lokasi awal str1 di str2 Ya Ya
SELENGKAPNYA Fungsi pencocokan menyetel RLENGTH dengan panjang str1 Ya Ya
OFMT Awk menggunakan ini untuk memutuskan cara mencetak nilai. Standarnya adalah “%.6g” Ya Ya
LINGKUNGAN Array yang berisi semua variabel dan nilai lingkungan Ya
ABAIKAN KASUS Defaultnya adalah 0. Jika disetel ke 1, ini tidak peka huruf besar-kecil untuk perbandingan string dan reg-ex. Ya
KESALAHAN Berisi pesan kesalahan operasi I/O. misalnya saat menggunakan fungsi getline. Ya
BINMODE n Menyetel mode biner untuk I/O. n dapat berupa 1 (file input), 2 (file output), atau 3 (semua file) Ya
CONVFMT Format yang digunakan saat mengonversi angka menjadi string. Ya
FIELDWIDTHS n n adalah angka yang dipisahkan spasi yang menunjukkan lebar kolom. Jika ini tersedia, gawk menggunakan ini sebagai ganti FS. Ya
LINT dan n bisa berupa angka. Ketika n adalah angka bukan nol (menunjukkan benar), gawk akan menampilkan pesan lint yang fatal, tidak valid, atau peringatan (sama seperti baris perintah –lint) Ya
TEXTDOMAIN Ini digunakan untuk internasionalisasi. Ya
sub(str1,str2,var) Dalam string input (var), str1 diganti dengan str2, dan output disimpan kembali di var Ya Ya
gsub(str1,str2,var) Sama seperti sub, tapi global. Itu melakukan beberapa substitusi pada string input yang sama (var). Ya Ya
cocok(str1,str2) Mengembalikan bilangan positif ketika str1 ada di str2. Ya Ya
getline Baca baris berikutnya dari file input lain. Setel $0, NF Ya Ya
getline var Baca baris berikutnya dari file input lain dan simpan dalam variabel (var) Ya Ya
toupper(str) Mengubah str menjadi huruf besar Ya
tolower(str) Mengubah str menjadi huruf kecil Ya
|& Komunikasi dua arah antara perintah awk dan proses eksternal Ya
sistem() Waktu saat ini dalam waktu zaman. Kombinasikan dengan strftime. misalnya print strftime(“%c”,systime()) Ya

Linux
  1. Gunakan awk untuk menghitung frekuensi huruf

  2. Panduan praktis untuk belajar awk

  3. Skrip gawk untuk mengonversi kutipan pintar

  1. Mengekstrak dan menampilkan data dengan awk

  2. Variabel Eksternal Dalam Awk?

  3. sed menggabungkan garis bersama

  1. Panduan pemula untuk melongo

  2. 4 Contoh Pernyataan Awk If ( if, if else, if else if, :? )

  3. Bagaimana menerima ya dari skrip Apakah Anda yakin ingin melanjutkan koneksi (ya/tidak)?