web-dev-qa-db-ja.com

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

次のような数値の列があるとします。

ファイル1:

1 
2
3
3
3
4
4
4
5
6

出力が必要です:

3  
4

つまり、繰り返される行のみです。 Linuxでこれを見つけるコマンドラインツールはありますか? (注:値は数値でソートされています)。

83

これにはuniq(1)を使用できます。

uniq -d file.txt

これは重複のみを印刷します。入力ファイルは、すべての重複が(連続しているように見える)連続するようにソートする必要があります。そうでない場合は、最初にソートを実行してください。

135
camh

これを実行:Perl -ne 'print if $a{$_}++' filename.txt

2
Sanjay Nair

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

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

または

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

2
jasonleonhard

uniqおよびawkの使用:

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