GNU/Linux >> Belajar Linux >  >> Linux

Perintah AWK Linux – Contoh Sintaks Penggunaan Linux dan Unix

Dalam panduan ramah pemula ini, Anda akan mempelajari dasar-dasar awk memerintah. Anda juga akan melihat beberapa cara untuk menggunakannya saat menangani teks.

Mari kita mulai!

Apa itu awk perintah?

awk adalah bahasa skrip, dan sangat membantu saat bekerja di baris perintah. Ini juga merupakan perintah yang banyak digunakan untuk pemrosesan teks.

Saat menggunakan awk , Anda dapat memilih data – satu atau beberapa bagian teks individual – berdasarkan pola yang Anda berikan.

Misalnya, beberapa operasi yang dapat Anda lakukan dengan awk sedang mencari kata atau pola tertentu dalam sepotong teks yang diberikan, atau bahkan memilih baris atau kolom tertentu dalam file yang Anda berikan.

Sintaks Dasar dari awk perintah

Dalam bentuknya yang paling sederhana, awk perintah diikuti oleh satu set tanda kutip tunggal dan satu set kurung kurawal, dengan nama file yang ingin Anda cari melalui yang disebutkan terakhir.

Tampilannya seperti ini:

awk '{action}' your_file_name.txt

Saat Anda ingin mencari teks yang memiliki pola tertentu atau Anda sedang mencari kata tertentu dalam teks, perintahnya akan terlihat seperti ini:

awk '/regex pattern/{action}' your_file_name.txt

Cara membuat file sampel

Untuk membuat file di baris perintah, Anda menggunakan touch memerintah.
Misalnya:touch filename.txt di mana filename , adalah nama file Anda.

Anda kemudian dapat menggunakan open perintah (open filename.txt ), dan program pengolah kata seperti TextEdit akan terbuka di mana Anda dapat menambahkan konten file.

Jadi, katakanlah Anda memiliki file teks, information.txt , yang berisi data yang dipisahkan ke dalam kolom yang berbeda.

Isi file bisa terlihat seperti ini:

fristName       lastName        age     city       ID

Thomas          Shelby          30      Rio        400
Omega           Night           45      Ontario    600
Wood            Tinker          54      Lisbon     N/A
Giorgos         Georgiou        35      London     300
Timmy           Turner          32      Berlin     N/A

Dalam contoh saya, ada satu kolom untuk firstName , lastName , age , city , dan ID .

Setiap saat, Anda dapat melihat output dari konten file Anda dengan mengetikkan cat text_file , di mana text_file adalah nama file Anda.

Cara mencetak semua isi file menggunakan awk

Untuk mencetak semua isi file, tindakan yang Anda tentukan di dalam kurung kurawal adalah print $0 .

Ini akan bekerja dengan cara yang persis sama dengan cat perintah yang disebutkan sebelumnya.

awk '{print $0}' information.txt

Keluaran:

fristName       lastName        age     city       ID

Thomas          Shelby          30      Rio        400
Omega           Night           45      Ontario    600
Wood            Tinker          54      Lisbon     N/A
Giorgos         Georgiou        35      London     300
Timmy           Turner          32      Berlin     N/A

Jika Anda ingin setiap baris memiliki jumlah nomor baris, gunakan NR variabel bawaan:

awk '{print NR,$0}' information.txt 
1 fristName     lastName        age     city       ID
2 
3 Thomas        Shelby          30      Rio        400
4 Omega         Night           45      Ontario    600
5 Wood          Tinker          54      Lisbon     N/A
6 Giorgos       Georgiou        35      London     300
7 Timmy         Turner          32      Berlin     N/A

Cara mencetak kolom tertentu menggunakan awk

Saat menggunakan awk , Anda dapat menentukan kolom tertentu yang ingin Anda cetak.

Untuk mencetak kolom pertama, gunakan perintah:

awk '{print $1}' information.txt

Keluaran:

Thomas
Omega
Wood
Giorgos
Timmy

$1 singkatan dari field pertama, dalam hal ini kolom pertama.

Untuk mencetak kolom kedua, gunakan $2 :

awk '{print $2}' information.txt

Keluaran:

lastName

Shelby
Night
Tinker
Georgiou
Turner

Cara awk menentukan di mana setiap kolom dimulai dan diakhiri dengan spasi, secara default.

Untuk mencetak lebih dari satu kolom, misalnya kolom pertama dan keempat, Anda harus melakukan:

awk '{print $1, $4}' information.txt

Keluaran:

fristName city
 
Thomas    Rio
Omega     Ontario
Wood      Lisbon
Giorgos   London
Timmy     Berlin

$1 mewakili bidang input pertama (kolom pertama), dan $4 mewakili sebagainya. Anda memisahkannya dengan koma, $1,$4 , sehingga output memiliki spasi dan lebih mudah dibaca.

Untuk mencetak kolom terakhir (kolom terakhir), Anda juga dapat menggunakan $NF yang mewakili terakhir bidang dalam catatan:

awk '{print $NF}' information.txt 

Keluaran:

ID

400
600
N/A
300
N/A

Cara mencetak baris kolom tertentu

Anda juga dapat menentukan garis yang ingin Anda cetak dari kolom pilihan Anda:

awk '{print $1}' information.txt | head -1 

Keluaran:

FirstName

Mari kita hancurkan perintah itu. awk '{print $1}' information.txt mencetak kolom pertama. Kemudian output dari perintah itu (yang Anda lihat sebelumnya) adalah piped , menggunakan simbol pipa | , ke perintah head, di mana -1 its argumen memilih baris pertama kolom.

Jika Anda ingin mencetak dua baris, lakukan:

awk '{print $1}' information.txt | head -2 

Keluaran:

FirstName
Dionysia

Cara mencetak garis dengan pola tertentu di awk

Anda dapat mencetak garis yang dimulai dengan huruf tertentu.

Misalnya:

awk '/^O/' information.txt

Keluaran:

Omega           Night           45      Ontario    600

Perintah itu memilih baris apa pun dengan teks yang dimulai dengan O .

Anda menggunakan simbol panah atas (^ ) pertama, yang menunjukkan awal baris, lalu huruf yang Anda inginkan untuk memulai baris.

Anda juga dapat mencetak garis yang berakhir dalam pola tertentu:

awk '/0$/' information.txt 

Keluaran:

Thomas          Shelby          30      Rio        400
Omega           Night           45      Ontario    600
Giorgos         Georgiou        35      London     300

Ini mencetak baris yang diakhiri dengan 0$ simbol digunakan setelah karakter untuk menandakan bagaimana sebuah garis akan berakhir.

Perintah itu juga bisa diubah menjadi:

awk '! /0$/' information.txt 

! digunakan sebagai NOT , jadi dalam hal ini ia memilih baris yang TIDAK diakhiri dengan 0 .

fristName       lastName        age     city       ID

Wood            Tinker          54      Lisbon     N/A
Timmy           Turner          32      Berlin     N/A

Cara menggunakan ekspresi reguler di awk

Untuk menampilkan kata-kata yang mengandung huruf tertentu dan mencetak kata-kata yang cocok dengan pola yang Anda tentukan, Anda kembali menggunakan garis miring, // , ditampilkan sebelumnya.

Jika Anda ingin mencari kata yang mengandung on , Anda akan melakukan:

awk ' /io/{print $0}' information.txt 

Keluaran:

Thomas          Shelby          30      Rio        400
Omega           Night           45      Ontario    600
Giorgos         Georgiou        35      London     300

Ini cocok dengan semua entri yang berisi io .

Katakanlah Anda memiliki kolom tambahan – department kolom:

fristName       lastName        age     city       ID   department

Thomas          Shelby          30      Rio        400  IT
Omega           Night           45      Ontario    600  Design
Wood            Tinker          54      Lisbon     N/A  IT
Giorgos         Georgiou        35      London     300  Data
Timmy           Turner          32      Berlin     N/A  Engineering

Untuk menemukan semua informasi orang yang bekerja di IT , Anda perlu menentukan string yang Anda cari di antara garis miring, // :

awk '/IT/' information.txt 

Keluaran:

Thomas          Shelby          30      Rio        400  IT
Wood            Tinker          54      Lisbon     N/A  IT

Bagaimana jika Anda hanya ingin melihat nama depan dan belakang orang-orang yang bekerja di IT ?

Anda dapat menentukan kolom seperti ini:

awk '/IT/{print $1, $2}' information.txt 

Keluaran:

Thomas Shelby
Wood   Tinker

Ini hanya akan menampilkan kolom pertama dan kedua di mana IT muncul, alih-alih menampilkan semua bidang.

Saat menelusuri kata dengan pola tertentu, mungkin ada saatnya Anda perlu menggunakan karakter escape, seperti:

awk '/N\/A$/' information.txt 

Keluaran:

Wood            Tinker          54      Lisbon     N/A
Timmy           Turner          32      Berlin     N/A

Saya ingin menemukan garis yang diakhiri dengan pola N/A .

Jadi, ketika mencari di antara ' // ' seperti yang ditunjukkan sejauh ini, saya harus menggunakan karakter pelarian (\ ) antara N/A , jika tidak, saya akan mendapatkan kesalahan.

Cara menggunakan operator perbandingan di awk

Jika, misalnya, Anda ingin menemukan semua informasi karyawan yang berusia di bawah 40 , Anda akan menggunakan < operator perbandingan seperti ini:

awk '$3 <  40 { print $0 }' information.txt

Keluaran:

Thomas          Shelby          30      Rio        400
Giorgos         Georgiou        35      London     300
Timmy           Turner          32      Berlin     N/A

Outputnya hanya menampilkan informasi orang di bawah 40 tahun.

Kesimpulan

Dan di sana Anda memilikinya! Anda sekarang mengetahui dasar-dasar mutlak untuk mulai bekerja dengan awk dan memanipulasi data teks.

Untuk mempelajari lebih lanjut tentang Linux, freeCodeCamp memiliki berbagai macam materi pembelajaran yang tersedia.

Berikut adalah beberapa di antaranya untuk Anda mulai:

  • Dasar-Dasar Linux - Lokakarya Praktis
  • Linux untuk Peretas Etis (Tutorial Kali Linux)
  • Buku Pegangan Perintah Linux

Terima kasih telah membaca dan selamat belajar 😊


Linux
  1. Perintah Sed Linux:Penggunaan dan Contoh

  2. 5 Contoh Praktis Perintah dd di Linux

  3. UNIX / Linux:10 Contoh Perintah Netstat

  1. Perintah Linux Cat:Penggunaan dan Contohnya

  2. 10 Contoh Perintah Xargs di Linux / UNIX

  3. Contoh Perintah awk di Linux

  1. Perintah Linux - Gambaran Umum dan Contoh

  2. Menggunakan perintah find Linux – Penggunaan dengan contoh

  3. Bagaimana Cara Menyalin File di Linux dan Unix? Contoh Perintah 10 cp