Contoh 1: Cetak rentang kolom dari output perintah
Perintah berikut akan mencetak kolom kedua, ketiga, dan keempat dari output perintah, 'ls -l'. Di sini, nomor kolom dinyatakan secara eksplisit, tetapi perintah yang lebih efisien untuk mencetak rentang kolom yang sama ditunjukkan pada contoh berikut.
$ ls -l | awk ' cetak $2, $3, $4 'Output berikut dihasilkan oleh perintah di atas:.
Contoh 2: Cetak rentang kolom dari file dengan menggunakan a untuk lingkaran
Untuk mengikuti contoh ini dan contoh lain dalam tutorial ini, buat file teks bernama tanda.txt dengan konten berikut:
ID CSE203 CSE102 CSE2021109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58
Perintah 'awk' berikut akan mencetak tiga kolom tanda pertama.txt. Itu untuk loop digunakan untuk mencetak nilai kolom, dan loop mencakup tiga langkah. Itu NF variabel menunjukkan jumlah total bidang atau kolom file.
$ tanda kucing.txt$ awk 'untuk(i=1;i .)<=NF-1;i++) printf $i" "; print ""' marks.txt
Output berikut akan dihasilkan dengan menjalankan perintah. Outputnya menunjukkan siswa ID dan tanda untuk CSE203 dan CSE102.
Contoh 3: Cetak rentang kolom dengan mendefinisikan variabel awal dan akhir
Perintah 'awk' berikut akan mencetak tiga kolom pertama dari output perintah 'ls -l' dengan menginisialisasi mulai dan akhir variabel. Di sini, nilai mulai variabel adalah 1, dan nilai akhir variabelnya adalah 3. Variabel-variabel ini diulang dalam for loop untuk mencetak nilai kolom.
$ ls -l | awk ' MULAI pertama = 1; terakhir = 3untuk (i = pertama; i < last; i++) printf("%s ", $i) print $last '
Output berikut akan muncul setelah menjalankan perintah:. Output menunjukkan tiga nilai kolom pertama dari output, 'ls -l'.
Contoh 4: Cetak rentang kolom dari file dengan pemformatan
Perintah 'awk' berikut akan mencetak tiga kolom pertama dari tanda.txt menggunakan printf dan pemisah bidang keluaran (OFS). Di sini, for loop mencakup tiga langkah, dan tiga kolom akan dicetak secara berurutan dari file. OFS digunakan di sini untuk menambahkan ruang antar kolom. Ketika nilai counter dari loop (i) sama dengan akhir variabel, maka baris baru(\n) dihasilkan.
$ tanda kucing.txt$ awk -v start=1 -v end=3 ' for (i=start; i<=end;i++) printf("%s%s",
$i,(i==akhir) ? "\n" : OFS) ' tanda.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas.
Contoh 5: Cetak rentang kolom dari file menggunakan pernyataan bersyarat
Perintah 'awk' berikut akan mencetak kolom pertama dan terakhir dari sebuah file dengan menggunakan for loop dan pernyataan if if. Di sini, for loop mencakup empat langkah:. Itu mulai dan akhir variabel digunakan dalam skrip untuk menghilangkan kolom kedua dan ketiga dari file dengan menggunakan kondisi if. Variabel OFS digunakan untuk menambah spasi antar kolom, dan variabel ORS digunakan untuk menambahkan baris baru (\n) setelah mencetak kolom terakhir.
$ tanda kucing.txt$ awk -v start=2 -v end=3 ' for (i=1; i<=NF;i++)
jika( i>=mulai && i<=end) continue;
else printf("%s%s", $i,(i!= NF) ? OFS : ORS) ' tanda.txt
Output berikut akan muncul setelah menjalankan perintah di atas. Output menunjukkan kolom tanda pertama dan terakhir.txt.
Contoh 6: Cetak rentang kolom dari file menggunakan variabel NF
Perintah 'awk' berikut akan mencetak kolom pertama dan terakhir dari file dengan menggunakan variabel NF. Tidak ada loop atau pernyataan kondisional yang digunakan untuk mencetak nilai kolom. NF menunjukkan jumlah bidang. Ada empat kolom dalam tanda.txt. $(NF-3) mendefinisikan kolom pertama, dan $NF menunjukkan kolom terakhir.
$ tanda kucing.txt$ awk 'print $(NF-3)" "$NF' tanda.txt
Output berikut dihasilkan dengan menjalankan perintah di atas:. Output menunjukkan kolom tanda pertama dan terakhir.txt.
Contoh 7: Cetak rentang kolom dari file menggunakan substr() dan index()
Fungsi index() mengembalikan posisi jika nilai argumen kedua ada di nilai argumen pertama. Fungsi substr() dapat mengambil tiga argumen. Argumen pertama adalah nilai string, argumen kedua adalah posisi awal, dan argumen ketiga adalah panjangnya. Argumen ketiga dari substr() dihilangkan dalam perintah berikut:. Karena kolom dimulai dari $1 dalam perintah 'awk', fungsi index() akan mengembalikan $3, dan perintah akan mencetak dari $3 hingga $4.
$ tanda kucing.txt$ awk 'print substr($0,index($0,$3))' tanda.txt
Output berikut akan dihasilkan dengan menjalankan perintah di atas.
Contoh 8: Secara berurutan mencetak rentang kolom dari file menggunakan printf
Perintah 'awk' berikut akan mencetak kolom tanda pertama, kedua, dan ketiga.txt dengan mengatur ruang yang cukup untuk 10 karakter.
$ tanda kucing.txt$ awk '//printf "%10s %10s %10s\n",$1,$3,$2 ' tanda.txt
Output berikut akan dihasilkan dengan menjalankan perintah di atas.
Kesimpulan
Ada berbagai cara untuk mencetak rentang kolom dari output perintah atau file. Tutorial ini menunjukkan bagaimana perintah 'awk' dapat membantu pengguna Linux untuk mencetak konten dari data tabular.