Saya memiliki file dengan satu kolom dengan nama yang masing-masing berulang beberapa kali. Saya ingin memadatkan setiap pengulangan menjadi satu, sambil menjaga pengulangan lain dengan nama yang sama yang tidak berdekatan dengan pengulangan lain dengan nama yang sama.
Misalnya. Saya ingin mengubah sisi kiri ke sisi kanan:
Golgb1 Golgb1
Golgb1 Akna
Golgb1 Spata20
Golgb1 Golgb1
Golgb1 Akna
Akna
Akna
Akna
Spata20
Spata20
Spata20
Golgb1
Golgb1
Golgb1
Akna
Akna
Akna
Inilah yang saya gunakan:perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt
Namun, metode ini hanya membuat satu perwakilan dari kiri (yaitu Golb1 dan Akna tidak diulang).
Apakah ada cara untuk menyimpan nama unik untuk setiap blok, sambil mempertahankan nama yang berulang di beberapa blok yang tidak berdekatan?
Jawaban yang Diterima:
uniq
akan melakukan ini untuk Anda:
$ uniq inputfile
Golgb1
Akna
Spata20
Golgb1
Akna
Linux – Membuat Penyalinan Disk/disk Lebih Lambat?
Linux – Nonaktifkan Adaptor Jaringan Nirkabel Di Arch?