9

複数行の file.txt しかありません。ファイルをソートせずに重複行を削除したいと思います。unix bash で使用できるコマンドは何ですか?

file.txtのサンプル

orangejuice;orange;juice_apple
pineapplejuice;pineapple;juice_pineapple
orangejuice;orange;juice_apple

出力のサンプル:

orangejuice;orange;juice_apple
pineapplejuice;pineapple;juice_pineapple
4

2 に答える 2

37

を使用した片道awk

awk '!a[$0]++' file.txt
于 2013-08-11T12:27:28.827 に答える
14

これには Perl を使用できます。

perl -ne 'print unless $seen{$_}++' file.txt

この-nスイッチにより、Perl はファイルを 1 行ずつ処理します。各行 ( $_) は "seen" という名前のハッシュにキーとして格納されますが++、値が返された後に発生するため、最初に一致したときに行が出力されます。

于 2013-08-11T09:48:49.917 に答える