テキストファイルから重複した値のみを印刷するには?

テキストファイルから重複した値のみを印刷するには?

次の値列があるとします。

ファイル1:

1 
2
3
3
3
4
4
4
5
6

私は出力が欲しい:

3  
4

つまり、重複した行だけがあります。 Linuxでこの問題を見つけるためのコマンドラインツールはありますか? (注:この値は数値でソートされます。)

答え1

uniq(1)ファイルがソートされている場合は、次の方法を使用できます。

uniq -d file.txt

ファイルがソートされていない場合は、まず以下を実行してくださいsort(1)

sort file.txt | uniq -d

これにより、重複した内容のみが印刷されます。

技術的には、入力はソートされた順序でソートする必要はありませんが、ファイル内の重複エントリは連続する必要があります。これを達成する一般的な方法は、ファイルをソートすることです。

答え2

uniqリストを並べ替える必要があり、デフォルトはアルファベット順です。

sort path/to/your/filename | uniq -d

または

cat fileName | sort | uniq -d

答え3

以下を実行してください。perl -ne 'print if $a{$_}++' filename.txt

答え4

使用uniqawk:

cat File1  | uniq -c | awk '$1 > 1 { print $2 }'

関連情報