Pada sesi command dan conquer ini, kita akan membahas cara menggunakan perintah grep, sed, awk, cat, dan cut untuk melakukan formatting output. Formatting output ini sangat berguna untuk meletakkan sesuatu secara bersamaan seperti conky atau script yang menampilkan informasi theme di terminal.
Perintah command pertama yang akan dibahas adalah perintah cut. Sebagai contoh kita ingin menampilkan nama distribusi pada theme script. Kita dapat menemukannya pada directory /etc/issue. Jika kita menjalankan cat /etc/issue, maka kita akan mendapatkan output yang mengandung escape karakter. Jadi jika kita menjalankan perintah /etc/issue|head -n 1, maka kita akan menghilangkan line tambahan dengan melakukan piping output dari perintah cat menuju ke head, yang kemudian akan menampilkan hanya baris pertama dari output. Sejauh ini hal ini baik, tetapi bagaimana dengan escape character ?.Hal ini dapat diatasi dengan menggunakan perintah cut. Untuk menggunakan cut, kita harus menggunakan delimiter, dan kemudian memberitahukan kepada perintah cut tersebut apa yang akan dilakukan dengan delimiter tersebut. Perintah yang akan digunakan adalah
cat /etc/issue|head -n 1 |cut –delimiter=’ ‘ -f 1,2
Command ini memberitahukan kepada cat bahwa delimiter yang digunakan adalah blank space dan menampilkan dua display pertama (pada dasarnya cut memotong output menjadi segment-segment menurut delimiter, sehingga field 1 dan field 2 merupakan field pertama sebelum dan sesudah delimiter pertama pada output, pada kasus kita, Ubuntu 8.10). Perintah cut juga dapat digunakan untuk menampilkan beberapa karakter dengan menggunakan -c flag.
Kita juga dapat melakukan hal yang sama dengan sed, dimana perintah yang digunakan adalah :
cat /etc/issue|sed ‘{s/\\n// ;
s/\\l// ; /^$/d}’
Perintah ini mungkin terlihat kompleks, tetapi dua ekspresi pertama (setiap ekspresi dipisahkan oleh tanda titik koma) memberitahukan kepada sed untuk menggantikan “\n” dengan tanda “”(nothing), dan hal ini juga berlaku untuk “\l”, menghilangkan karakter tersebut dari output. “/^$/d merupakan command yang memberitahu sed untuk menghapus blank line (“/^$” merupakan regular experession untuk line yang dimulai dengan blank dan berakhir juga dengan blank dan tidak memiliki tanda — diantara blank tersebut). Sehingga ‘s/\\n\b//’ memberitahu sed untuk mengganti (“s/)”\n”(“\\n”) dengan “”(“//”). Alasan mengapa command ini ditaruh dalam tanda kurung, karena kita menggunakan tiga ekspresi pada output, dan kita hanya ingin menghasilkan satu ouput, sehingga kita menaruh ekspresi tersebut dalam tanda kurung (“{}”) dan dipisahkan oleh tanda titik koma.
Terakhir output yang sama dapat dihasilkan dengan menggunakan perintah awk. Perintah awk yang digunakan untuk menghasilkan output yang sama adalah sebagai berikut :
cat /etc/issue|awk ‘/\\n/ {print $1, $2}’
Command ini sekali lagi menggunakan regular expression, tapi jauh lebih mudah dimengerti daripada perintah sed sebelumnya. Pada dasarnya, awk ‘/\n/ {print $1, $2}’ menemukan suatu baris yang memiliki karakter “\n”, kemudian mencetak dua field pertama (pemisah standar yang digunakan adalah space, tapi kamu dapat menggunakan pemisah sesuai dengan keinginan kamu dengan menggunakan -F flag). Hal ini dapat mencegah keharusan untuk melakukan format extra line dan ‘\l’ dari output.
Pembahasan ini hanyalah membahas sesi perkenalan dari command awk, sed, dan cut. Implementasi yang fleksibel dari awk, sed, dan cut membuat sangat sulit untuk membuat tutorial yang mengupas lebih dalam dari ketiga perintah ini. Penjelasan diatas dimaksudkan untuk memberikan gambaran bagaimana perintah-perintah tersebut bekerja, dan tidak secara penuh mengeksplorasi kemampuan dari ketiga perintah tersebut. Jika kamu ingin berlatih lebih banyak cobalah untuk menggunakan ketiga perintah tersebut, dimana output yang dihasilkan dari ketiga perintah tersebut adalah sama.
Artikel ini diambil dari majalah Full Circle Magazine edisi ke-21 dan di terjemahkan oleh Indra Budi Trisno.
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.



0 responses so far ↓
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment