Text Manipulation Tools ini adalah versi yang sedikit lebih rumit dari Text Viewing Tools. Pada waktu yang sebelumnya juga saya sudah sempat menulis tentang hal tersebut.
Baca: Text Viewing Tools for Read Files on Linux/Unix
Pada artikel kali ini saya akan menulis tentang penggunaan Text Manipulation Tools lebih jauh lagi. Sebetulnya text Viewing tools seperti cat
dapat juga di gunakan untuk memanipulasi, contohnya dengan di tambahkan perintah |grep (argumen)
, hanya saja klasifikasinya memang masuk ke viewing tools.
Kali ini juga saya masih menggunakan sumber yang sama yakni dari situs tldp.org. Merujuk pada situs tersebut kita akan coba untuk mempelajari beberapa perintah, seperti sort
, join
, cut
, ispell
/aspell
, tr
, fmt
, paste
, expand
, nl
, dan perl
(search and replace text).
Daftar Isi
#1 Text Manipulation Tools sort
sort
dapat di gunakan untuk mengurutkan isi suatu file. Jika kita menggunakan perintah sort
tanpa atribut apapun, maka sort
akan mengurutkan isi file tersebut sesuai urutan abjad.
sort
juga dapat di kombinasikan dengan pipe “|
” untuk menampilkan output suatu perintah. Untuk mengurutkan secara terbalik dapat menggunakan -r
. Lalu perintah -g
di gunakan untuk mengurutkan berdasarkan angka, dalam hal ini akan membaca secara keseluruhan bukan hanya digit pertama saja.
berikut contoh penggunaan sort
;
sort contoh.txt
atau menggunakan pipe “|
“;
cat contoh.txt | sort
Mengurutkan file sesuai abjad desc;
sort -r contoh.txt
#2 Text Manipulation Tools join
Seperti namanya join
berarti gabung. Dengan join
kita dapat membandingkan isi dua file. Sebagai contoh saya mempunyai dua buah file yaitu join1.txt
dan join3.txt
dengan isi yang identik sama. Lalu saya akan menggunakan perintah;
join join1.txt join3.txt
Karena isinya identik, maka terminal akan print semua isi file yang identik, sehingga di dapat hasil;
Nah lain hal jika dua buah file yang kita bandingkan memiliki isi yang tidak sama. Maka terminal hanya akan print isi file yang sama saja, dan memberikan pesan error bagian mana dari dua file tersebut yang tidak sama. Untuk kasus ini saya akan membandingkan file join1.txt
dan join2.txt
, dan di dapat hasil;
#3 cut
cut
di gunakan untuk print beberapa bagian dari isi sebuah file. Misalkan saya mempunyai file contohlog.txt
dengan isi sebagail berikut;
baris 1
baris 2
baris 3
baris 4
baris 5
baris 6
baris 7
baris 8
baris 9
baris 10
baris 11
Dari file tersebut yang ingin saya print hanya tulisan baris nya saja, tanpa angka. Maka saya akan menggunakan perintah;
cut -c 1-5 contoglog.txt
Lalu mendapatkan hasil sebagai berikut;
Selain itu ada juga opsi lain dari cut
yaitu opsi -d
untuk menentukan delimiter atau pembatas.
Lalu ada juga opsi -f
yang akan berguna pada teks dengan layout kolom yang di pisahkan menurut pembatas.
Kita akan coba menggabungkan opsi -d
dan -f
bersamaan untuk mengambil data user dari file /etc/passwd
. Maka saya menggunakan perintah;
cut -d ':' -f 1 /etc/passwd
Sehingga akan di hasil kan print sebagai berikut;
Ada juga penggunaan ‘,
‘ (tanda baca comma) yang di gunakan untuk memisahkan angka yang akan membuat kita dapat membaca secara spesifik pada kolom tertentu.
Saya akan coba mengambil data dari file /etc/passwd
untuk mengetahui nama user dan lokasi home folder mereka. Maka saya akan menggunakan perintah;
cut -d ':' -f 1,6 /etc/passwd
Maka akan di dapatkan hasil sebagai berikut;
#4 ispell/aspell
ispell
atau aspell
dapat kita gunakan untuk memperbaiki ejaan dari tiap kata yang terdapat dalam sebuah file. Ejaan ini sepertinya merujuk pada penulisan bahasa Inggris yang baik dan benar.
Ada beberapa opsi yang dapat kita gunakan dalam aspell
, yaitu
-?
: Untuk menampilkan cara menggunakanaspell
help
: Untuk menampilkan panduan lengkap cara menggunakanaspell
-c
: Untuk cek file-a
: Mode kompatibel antaraaspell
danispell
Berikut saat saya menggunakan aspell
pada file contohlog.txt
dengan perintah;
aspell -c contohlog.txt
Maka akan di dapat hasil sebagai berikut;
Seperti yang terlihat pada gambar di atas ada beberapa opsi untuk mengganti kata ‘baris’ menjadi kata lainnya, dalam hal ini di sediakan sebanyak sepuluh opsi. Untuk keluar dari jendela aspell
kita dapat menekan tombol ‘x’ pada keyboard.
Di sisi lainnya ispell
dapat di gunakan tanpa memasukan opsi perintah. Berikut contoh penggunaan perintah ispell
;
ispell contohlog.txt
Kemudian akan mendapatkan hasil sperti berikut;
Pada dasarnya memiliki prinsip yang sama hanya saja berbeda dalam menggunakan perintah dan juga cara me-replace tiap kata. Seperti biasa untuk keluar dari jendela aspell
kita dapat menekan tombol ‘x’ pada keyboard.
Ada juga penggunaan ispell
secara langsung tanpa menambahkan opsi file. Dengan begitu kita akan masuk ke mode ispell
dan dapat mengeceh apakah penulisan yang kita input sudah sesuai dengan ejaan bahasa Inggris yang baik atau perlu di koreksi lagi.
Dapat di perhatikan bahwa saat memasukan kata yang tidak ada dalam kosa kata bahasa Inggris seperti “kucing” maka akan mendapat pesan not found. Lalu jika memasukan kata yang kurang tepat, ispell
akan memberikan pilihan kata yang mungkin dapat kita gunakan. Kemudian jika kata yang kita masukan ada dalam kosa kata bahasa Inggris, maka ispell
akan memberikan tanda ok
.
Jika sudah selesai menggunakan ispell kita dapat sudahi dengan menekan tombol ctrl+c
.
#5 tr
Kita dapat menggunakan tr
untuk mengganti isi suatu file dari huruf kecil menjadi kapital atau sebaliknya. Dengan begitu kita tidak harus menulis ulang semua isi file, cukup memasukan beberapa perintah sederhana seperti;
cat join1.txt | tr '[a-z]' '[A-Z]' > joinUppercase.txt
Dengan perintah di atas saya akan membuat isi file join1.txt
yang awalnya kecil semua menjadi besar semua dan menyimpannya pada sebuah file baru joinUppercase.txt
. Sehingga menghasilkan isi file seperti berikut;
Selain itu tr
juga dapat di manfaatkan sebagai tools find and replace yang sangat baik. Berikut saya lampirkan contoh gambar;
Pada gambar di atas saya mampunyai file numbering.txt
dengan isi deretan angka sembarang. Kemudian saya coba mengganti semua angka 2 menjadi 9 dengan bantuan tr
dan menyimpan perubahan tersebut pada file newNumbering.txt
.
#6 fmt
fmt
adalah sebuah pemformatan teks sederhana. Misalkan saya mempunyai suatu file dengan spasi yang tidak beraturan. fmt
akan bertugas untuk merapihkan spasi tersebut.
Ketentuannya yaitu untuk jarak antar kata akan di berikan satu spasi. Lalu untuk jarak antar kalimat akan di berikan dua spasi.
Berikut adalah contoh penggunaan fmt
;
fmt -u format.txt
Kemudian mendapatkan hasil;
#7 paste
Selanjutnya ada paste
. paste
di gunakan untuk print gabungan isi dari dua buah file berbeda. Nantinya isi file kedua akan berada di sebelah samping kanan dari isi file pertama. Untuk pengisian tiap baris juga sesuai dengan urutan.
Agar tidak semakin bingung coba perhatikan contoh di bawah. Saya mempunyai dua buah file berbeda, yaitu contohlog.txt
dan join1.txt
dengan isi yang berbeda pula.
Kemudian kita akan gabungkan isi dari kedua file di atas menggunakan perintah;
paste contohlog.txt join1.txt
Sehingga mendapatkan output;
Update 02-09-2021
paste
juga dapat di gunakan untuk menggabungkan beberapa baris kata atau kalimat dalam sebuah file menjadi satu baris kalimat utuh yang di pisahkan dengan tab.
Buatlah sebuat file baru bernama kucing.txt
dengan isian sebagai berikut;
Persia
Domestik
Munchkin
Exotic
sphynx
scottish
Bengal
Buatlah isi file tersebut menurun ke bawah seperti pada contoh di atas, lalu gunakan atribut -s
pada paste
untuk membuat urutan di atas menjadi satu baris utuh.
paste -s kucing.txt
Perintah dengan menggunakan atribut -s
adalah untuk membuatnya menjadi satu baris, namun hasilnya masih kurang enak di baca. Agar lebih enak untuk di baca, bisa menggunakan delimiter atau -d
dan menambahkan spasi, dengan perintah;
paste -d ' ' -s kucing.txt
#8 expand
expand
di gunakan untuk mengkonversi tab menjadi spasi. Kita dapat menggunakan opsi -t
<num>
untuk menentukan jumlah spasi.
Supaya lebih memperjelas perhatikan gambar berikut;
Pada gambar di atas ada kalimat yang saya pisahkan perkata menggunakan tab dan ada juga yang menggunakan spasi biasa. Target kita adalah membuat kalimat yang menggunakan tab agar tampak seperti menggunakan spasi.
Untuk itu kita memerlukan bantuan expand
untuk melakukannya, dengan perintah;
expand -t 1 tabfile.txt
Dengan menggunakan opsi -t 1
, kita akan memperoleh output berupa tiap kata akan mempunyai satu spasi;
#9 nl
nl
adalah singkatan dari Number Line. Dari namanya saja sudah dapat di tebak kalau perintah nl
dapat di gunakan untuk memberi atribut nomor pada isi sebuah file pada tiap-tiap barisnya.
Biasanya saat menggunakan text editor seperti vi
atau nano
tidak di sertakan line number di dalamnya. Nah kamu dapat mengatasi hal tersebut dengan nl
. Terutama bagi kamu yang menulis code pada terminal semacam bash/shell script, akan lebih mudah menemukan error dengan mengetahui error tersebut terletak pada baris keberapa.
Baca: Macam-macam Text Editor Pada Linux
Kita dapat menggunakan nl
dengan perintah;
nl namafile.extention
Atau bisa juga di kombinasikan dengan cat
;
cat namafile.extention |nl
Saya juga sudah menulis tentang penggunaan cat
pada artikel Text Viewing Tools for Read Files on Linux/Unix. Berikut adalah hasil dari percobaan menggunakan nl
;
#10 perl, Text Manipulation Tools for Search and Replace
Fitur utama dari perl
adalah kemampuannya untuk search dan replace suatu kata dalam sebuah file. Kita akan coba pada file contohlog.txt
dan mengganti tulisan baris menjadi line dengan perintah;
perl -pi -e "s/baris/line/g;" contohlog.txt
Maka akan di dapat hasil seperti pada gambar berikut;
#11 wc (Update 02-09-2021)
Jika nl
di gunakan untuk memberikan nomor baris pada tiap baris, wc
dapat di gunakan untuk menghitung jumlah kata dalam suatu file. Kamu dapat mencoba dengan perintah;
wc /etc/passwd
Perintah di atas akan menampilkan hasil;
31 43 1635 /etc/passwd
Jika hanya ingin menampilkan jumlah kata yang terdapat pada file /etc/passwd
, maka gunakan perintah;
wc -w /etc/passwd
Maka output yang akan keluar hanya jumlah kata yang terdapat pada file /etc/passwd
, seperti;
43 /etc/passwd
Kesimpulan Text Manipulation Tools
Dari beberapa percobaan di atas kita sudah mengetahui ada sebanyak sepuluh macam tools yang dapat kita gunakan untuk memanipulasi data suatu file. Sebetulnya ada juga beberapa tools seperti unexpand
, uniq
, dan chcase
yang tidak saya bahas.
Hal tersebut karena saat saya mencoba tidak ada respon apapun, atau respon yang keluar tidak seperti yang di harapkan dan tidak sesuai dari deskripsi tools tersebut.
Silahkan teman-teman mencobanya sendiri dan berkreasi. Makin sering kita latihan maka kemungkinan untuk menjadi mahir semakin besar.