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 warna.txt warna2.txt
biru
Biru
hIjAu
Merah
merah
hiJau
hijau
puTIH
hitam
putih
kuning
bIRu
orange
pInk
biru
hIjAu
Merah
hiJau
puTIH
hitam
putih
kuning
bIRu
orange
pInk

Menghapus semua kata yang kembar

Format:

uniq -ui INPUT OUTPUT

contoh:

uniq -ui warna.txt warna3.txt
hIjAu
puTIH
hitam
putih
kuning
bIRu
orange
pInk

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

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 muda
duku
salak
Duku
SALAK
Salak
mangga
pepaya
duku
mANGGA
Duku

Hasilnya:

Mangga
PEPAYA
pepaya muda
salak
Salak
SALAK

Kalau perintah sort dijalankan tanpa uniq, hasilnya seperti ini:

$ sort buah.txt
duku
duku
Duku
Duku
mangga
mangga
mANGGA
mANGGA
Mangga
pepaya
pepaya
PEPAYA
pepaya muda
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 )

Google+ photo

You are commenting using your Google+ 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 )

Connecting to %s