我想在文本文件中找到第一个 重复行。
我通常在文件中查找重复行的方法是使用 uniq,它采用排序后的文件,所以我:
sort inputfile | uniq -c | sort -nr > outputfile
计算所有重复项并按降序打印。
通过排序然后使用 uniq,我丢失了原始文件中出现重复项的时间/位置,我现在只对哪一行是第一个重复项感兴趣。
有什么想法吗?
最佳答案
awk '{ if(seen[$0]) { print; exit } seen[$0] = 1 }' file
这将跟踪每一行,然后打印它之前看到的第一行。如果您想要行号,请同时打印 NR。
awk '{ if(seen[$0]) { print NR, $0; exit } seen[$0] = 1 }' file
关于linux - 查找文件中的第一个重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21445098/