GNU/Linux >> Linux の 問題 >  >> Linux

注文を維持しながら、隣接する重複行を削除しますか?

それぞれが何度も繰り返される名前を持つ1つの列を持つファイルがあります。同じ名前の他のリピートに隣接していない同じ名前の他のリピートを保持しながら、各リピートを1つに凝縮したいと思います。

例えば。左側を右側に向けたい:

Golgb1    Golgb1    
Golgb1    Akna
Golgb1    Spata20
Golgb1    Golgb1
Golgb1    Akna
Akna
Akna
Akna
Spata20
Spata20
Spata20
Golgb1
Golgb1
Golgb1
Akna
Akna
Akna

これは私が使用しているものです:perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt
ただし、この方法では、左から1人の代表者しか保持されません(つまり、Golb1とAknaは繰り返されません)。

隣接していない複数のブロックで繰り返される名前を保持しながら、各ブロックの一意の名前を保持する方法はありますか?

承認された回答:

uniq あなたのためにこれを行います:

$ uniq inputfile
Golgb1
Akna
Spata20
Golgb1
Akna

Linux
  1. テキストファイル内の重複行を削除するにはどうすればよいですか?

  2. 特定の列の重複フィールドを削除しますか?

  3. 線はほとんど同じですが、順序が狂っていますか?

  1. grpck コマンド – /etc/group および /etc/gshadow ファイル内の破損したエントリまたは重複したエントリを削除します。

  2. ファイル B に表示される行を別のファイル A から削除するには?

  3. 非常に大きなテキスト ファイルの最後の 2 行を効率的に削除する

  1. Linuxで重複する写真を見つけて削除する方法

  2. .bash_historyの重複を削除するには、順序を保持しますか?

  3. ファイル内の行の順序を変更する