Filters / Text Processors Commands

Kali ini kita akan membahas tentang cara melakukan filter terhadap output dari suatu perintah. Berikut adalah beberapa perintah yang akan kita pelajari:

  • cut

  • awk

  • grep

  • egrep

  • sort

  • uniq

  • wc

Dummy File

Agar mempermudah pembelajaran saya telah membuatkan dummy file untuk kita berlatih.

list-name.txt
Muhammad Aprian
Figit Hasan
Hilmi Arie
Iqbal Beryl
Dikdik Hilmi
J Kevin
Muhamad Rijalul
Nita Putri
Asyilla Rohmah
Fahri Doni
Hilmi Arie
Anisa Putri
Putra Rizki
Muhammad Rizky

"Hilmi Arie" pada baris ke-3 terlambat saya tambahkan untuk kebutuahan perintah uniq, sehingga terdapat sedikit perbedaan output yang mungkin Anda temui.

cut - Command

Perintah cut digunakan untuk memotong bagian dari setiap baris sebuah file. Pemotongan ini bisa ditentukan oleh delimiter, karakter, atau byte.

Berikut adalah contoh penggunaan dari perintah cut:

cut FILE # tidak berjalan
cut --version # cek versi
cut -c1 FILE # menampilkan first latters
cut -c1,2,4 FILE # menampilkan latters yang diinginkan (1,2,4)
cut -c1-3 FILE # range 1-3
cut -c1-3,6-8 FILE # spesifik range
cut -b1-3 FILE # byte characters
cut -d: -f 6 /etc/passwd # delimiter + field
cut -d: -f 6-7 /etc/passwd # delimiter + field
ls -l | cut -c2-4  # only print permisson for user

Perhatikan contoh di atas, saya hanya menampilkan huruf ke-1 dan ke-3 sampai ke-8.

Kita juga bisa menggabungkan perintah lain dengan perintah cut. Contohnya adalah kita hanya ingin menampilkan hak akses dari pemilik suatu file atau direktori saja, seperti berikut:

Hal lain yang bisa dilakukan adalah kita bisa menentukan pembatas (delimiter), lalu menampilkan field tertentu dari pembatas tersebut. Contohnya, file /etc/passwd menggunakan tanda : sebagai pemisah data/field. Dengan perintah cut kita bisa menampilkan field tertentu dari suatu file:

/etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
newbye:x:1000:1000:Muhammad Aprian:/home/newbye:/usr/bin/zsh

Terlihat bahwa saya hanya ingin menampilkan path home dari setiap user.

Informasi tentang file /etc/passwd akan dijelaskan pada materi selanjutnya.

awk - Command

Perintah awk adalah utilitas yang dirancang untuk ekstraksi data. Perintah ini sangat powerful dan sering digunakan.

Berikut adalah contoh penggunakan perintah awk:

awk --version # cek version
awk '{print $1}' FILE # print field/kata pertama
ls -l | awk '{print $1,$3}' # print field ke-1 dan 3
ls -l | awk '{print $NF}'
awk '/jerry/' '{print}' FILE # search spesifik kata from file
awk -F: '{print $1}' /etc/passwd # set field 
echo "Hello Tom" | awk '{$2="Adam"; print $0}' # replace words fields wordls // $0 apapun yang ditemukan dicetak
cat FILE | awk '{$2="Aprian"; print $2}' # contoh
awk 'length($0) > 15' FILE # get lines that have more than 15 byte size
ls -l | awk '{if($9 == "seinfeld") print $0}' # cari direktori/file yang pake kata "seinfeld"
ls -l | awk '{print NF}' # print jumlah fields

Pembatas antar field secara default adalah spasi atau TAB.

grep - Command

Perintah grep yang merupakan singkatan dari "global regular expression print", memproses baris demi baris teks dan mencetak setiap baris yang cocok dengan pola yang ditentukan.

grep --version
grep --help
grep keyword FILE # filter keyword
grep -c keyword FILE # (count) jumlah filter keyword
grep -i Keyword FILE # ignore case-sensitive
grep -n keyword FILE # show number line
grep -v keyword FILE # except keyword
grep keyword file | awk '{print $1}' | cut -c1-3 # menampilkan first field dari baris yang mengandung keyword
ls -l | grep Desktop

egrep - Command

Sama seperti grep, hanya saja egrep bisa menambahkan lebih dari satu keyword.

egrep -i "keyword1|keyword2" FILE # search for 2 keywords
egrep -i "keyword1|keyword2|keyword3" FILE # search for 3 keywords

sort - Command

Perintah sort berfungsi untuk mengurutkan output sesuai abjad.

sort --version # cek versi
sort --help # help
sort FILE # megurutkan a-z
sort -r FILE # mengurutkan z-a (reverse)
sort -k2 FILE # mengurutkan berdasarkan field ke-2

uniq - Command

Perintah uniq digunakan untuk memfilter baris yang sama atau duplikat.

uniq FILE # remove duplicate
sort FILE | uniq # sort terlebih dahulu sebelum remove duplicate
sort FILE | uniq -c # cek jumlah kata duplicate
sort FILE | uniq -d # show only duplicate

wc - Command

Menghitung output atau isi dari file berdasarkan jumlah baris, kata dan byte.

wc --version # cek version
wc --help # helping
wc FILE # baris-jumlah kata-byte
wc -l FILE # hanya baris
wc -w FILE # hanya words
wc -c FILE # hanya bytes
wc DIRECTORY # not allowed
ls -l | wc -l # number of files
ls -l | grep "drw" | wc -l # number of keyword lines

Last updated

Was this helpful?