$ cat data.txt
aaaaaa
aaaaaa
cccccc
aaaaaa
aaaaaa
bbbbbb
$ cat data.txt | uniq
aaaaaa
cccccc
aaaaaa
bbbbbb
$ cat data.txt | sort | uniq
aaaaaa
bbbbbb
cccccc
$
私が必要とする結果は元のファイルのすべての行を表示し、ファイルの元のステートメントの順序を維持しながら、すべての重複項目(連続行だけでなく)を削除します。。
この例では、私が実際に探している結果は次のとおりです。
aaaaaa
cccccc
bbbbbb
一般に、この一般的なタスクをどのように実行しますかuniq
?
ベストアンサー1
perl -ne 'print unless $seen{$_}++' data.txt
または必ず持っている必要がある場合役に立たない使用cat
:
cat data.txt | perl -ne 'print unless $seen{$_}++'
以下はawk
Perlのないシステムの翻訳です:
awk '!seen[$0]++' data.txt
cat data.txt | awk '!seen[$0]++'