2016-06-15 12 views
2

ファイルの内容を確認するコマンドを探していますが、その内容が見つかった場合には再度書きません。書かれている。例えばファイルの内容を条件文として確認するコマンド

cat sample1.txt 
test1 1.0.0.0 
test2 1.0.0.0 
test1 2.0.0.0 

これらの3つのエントリのうちは、私は最初の一意のエントリは、出力ファイルに書き込むことにしたいです。私の出力ファイルは、ここで

cat sample_op.txt 
test1 1.0.0.0 
test2 1.0.0.0 

私の質問は、ループを使用せずに、あるべきである私は、いくつかのコマンドでは、この操作を実行するために得ることができますか?

答えて

4

awkのそれは簡単です使用:

awk '!seen[$1]++' file 

test1 1.0.0.0 
test2 1.0.0.0 

このawkコマンドが$1としてキーを持つ連想配列seenを使用しています。各行で$1が利用可能かどうかをseenで確認します。 yesの場合はラインが出力され、それ以外の場合は$1の値が1だけインクリメントされます。

+1

あなたの素早い返信をありがとう、これは働いた..ありがとうもう一度:) – Programmer

関連する問題