ファイルを繰り返しながら、2行を比較して同じ12文字で始まることを確認したいと思います。これにより、最初の行を削除してからすべての行を比較するまで、残りの行をファイルの次の行と比較したいと思います。
このファイルには、ディレクトリ内のソートされたファイルのリストが含まれています。同じ12文字で始まるファイルが複数ある場合があります(常に順番に)。私は最後のものが欲しい
以前の投稿で同様の解決策を見ました。
sed '$!N; /\(.*\)\n\1:FOO/D; P;D' file
しかし、私に合わせて修正することはできません。
ベストアンサー1
システムにいる場合は、uniq
この-w n
オプションを使用して比較を最初に制限できます。N1行あたりの文字数:
uniq -w 12 file.txt
が返されます最初各ゲームは連続して表示されます。
欲しいなら最後各一致は連続して発生し、処理の前後にファイルを実行して行のtac
順序を逆にしますuniq
。
tac file.txt | uniq -w 12 | tac
例:
[fish/]$ cat fish.txt
Apopterygion_alta.fasta
Apopterygion_oculus.fasta
Oncorhynchus_gorbuscha.fasta
Oncorhynchus_keta.fasta
Oncorhynchus_kisutch.fasta
Oncorhynchus_masou.fasta
Oncorhynchus_nerka.fasta
Oncorhynchus_tshawytscha.fasta
[fish/]$ uniq -w 12 fish.txt
Apopterygion_alta.fasta
Oncorhynchus_gorbuscha.fasta
[fish/]$ tac fish.txt | uniq -w 12 | tac
Apopterygion_oculus.fasta
Oncorhynchus_tshawytscha.fasta