假设有一列数值,如下所示:
文件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 }'