bash打印完整的行,只有前n个字符匹配

时间:2015-12-15 21:16:39

标签: bash sorting hash

我为某些文件创建了一个哈希的排序列表

ffb01af8fda1e5c3b74d1eb384d021be1f1577c3 *./Pictures/camera/London 170713/P9110042.JPG
ffb01af8fda1e5c3b74d1eb384d021be1f1577c3 *./Pictures/london/P9110042.JPG

哪里有重复的哈希(只是哈希),我想打印所有匹配的整行

所以说在哪里哈希A B C

A 1
B 2
B 3
C 4
C 5
C 6

在本例中,除了第一行之外的所有行都应该打印

B 2
B 3
C 4
C 5
C 6

2 个答案:

答案 0 :(得分:3)

在继续之前,请查看fdupes

如果您不想使用专门用于查找重复文件的强大工具,可以使用sort | uniq

$ cat file
A 1
B 2
B 3
C 4
C 5
C 6

$ sort file | uniq -w 1 -D
B 2
B 3
C 4
C 5
C 6

答案 1 :(得分:2)

使用awk你可以做(​​也可以使用未分类的文件):

awk 'FNR==NR{seen[$1]++; next} seen[$1]>1' file file
B 2
B 3
C 4
C 5
C 6