Menghapus duplikasi isi file teks

Salah satu yang saya suka dari linux adalah command line. Kita bisa melakukan pekerjaan dengan lebih cepat, misalnya mencari dan menghapus duplikasi teks dalam sebuah file tanpa membuka file tersebut.

Menghapus duplikasi

uniq – report or omit repeated line.
-u, --unique only print unique lines.

Format:

uniq [OPTION]... [INPUT [OUTPUT]]
uniq INPUT
uniq INPUT OUTPUT
uniq -u INPUT
uniq -u INPUT OUTPUT

Contoh:

uniq menu.txt menu2.txt
uniq -u menu.txt menu3.txt

Menghapus duplikasi (ignore case)

-i, --ignore-case
ignore differences in case when comparing.

Format:

uniq -i INPUT OUTPUT

Contoh:

uniq -i kota.txt kota2.txt
Bandung
Bandung
Jakarta
Jakarta
dENPASAR
denpasar
JAKARTA
Banjarmasin
jakarta
jakarta
balikpapan
balikpapan
BALIKPAPAN
Bandung
Jakarta
dENPASAR
JAKARTA
Banjarmasin
jakarta
balikpapan

Menghapus semua kata yang kembar

Format:

uniq -ui INPUT OUTPUT

contoh:

uniq -ui kota.txt kota3.txt
JAKARTA
Banjarmasin

Mengurutkan dan menghapus duplikasi

Perintah uniq di atas punya satu kelemahan, yaitu tidak bisa mengenali duplikasi kata yang berjauhan. Jadi kata-kata yang sama mesti berdekatan.

uniq does not detect repeated lines unless they are adjacent. You may want to sort the input first, or use sort -u without uniq.
— from man uniq

Untuk mengatasinya, kita perlu menggunakan perintah sort. Perintah ini mengurutkan daftar kata secara alfabetis sehingga semua duplikat kata saling berdekatan, baru kemudian diproses oleh perintah uniq.

Format:

sort INPUT | uniq -u > OUTPUT

Contoh:

sort buah.txt | uniq -u > buah2.txt
pepaya
mangga
mANGGA
Mangga
PEPAYA
pepaya california
duku
salak
Duku
SALAK
Salak
mangga
pepaya
duku
mANGGA
Duku

Hasilnya:

Mangga
PEPAYA
pepaya california
salak
Salak
SALAK

Kalau perintah sort dijalankan tanpa uniq, hasilnya seperti ini:

xxx@zzz:~$ sort buah.txt
duku
duku
Duku
Duku
mangga
mangga
mANGGA
mANGGA
Mangga
pepaya
pepaya
PEPAYA
pepaya california
salak
Salak
SALAK

Selamat mencoba, semoga bermanfaat.

Baca juga:

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s