次の値列があるとします。
ファイル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
使用uniq
とawk
:
cat File1 | uniq -c | awk '$1 > 1 { print $2 }'