web-dev-qa-db-ja.com

grep出力から独自の結果を取り除くにはどうすればいいですか?

Linuxでは、grep mySearchString myFile.txtを使ってファイルから文字列をgrepすることができます。どうしたら私は唯一の結果を得ることができますか?

74
hap497

これは sortuniq のユーティリティで実現できます。

例:

[john @ awesome〜] $ echo -e "テスト\ nテスト\ nテスト\ nanotherテスト\ nテスト" 
テスト
テスト
別のテスト
 ] test 
 [john @ awesome〜] $ echo -e "test\ntest\ntest\nanother test\ntest" |並べ替え| uniq 
他のテスト
テスト

データによっては、いくつかのスイッチも利用することをお勧めします。

122
John T

次を使用できます。

grep -rohP "(mySearchString)" . | sort -u

-r:再帰的

-o:テキストの一致部分のみを印刷します

-h:ファイル名を出力しません

-P:Perlスタイルの正規表現(場合によっては、代わりに-Eを使用できます)

@Chris Johnsenが指摘したように、sort -usort | uniqよりも優れています。

1
Pato