如何使用Python查找文本文件中指定多列组合值重复的行
多列组合重复行查找方法
针对竖线分隔的文本文件,需要筛选指定多列值组合重复的所有行,可直接使用awk命令实现,以下是具体方案:
实现命令
awk -F '|' 'NR==1{next} { key = $2"|"$3"|"$5 if (count[key] >= 1) { if (count[key] == 1) print buf[key] print $0 count[key]++ } else { buf[key] = $0 count[key] = 1 } }' abc.txt
逻辑说明
-F '|':指定文件的列分隔符为竖线|NR==1{next}:跳过文件的表头行,如果你处理的文件没有表头可以直接删除这部分代码key = $2"|"$3"|"$5:将第二列state、第三列zipcode、第五列continent拼接为组合判断键,如需调整判断重复的列,修改这里的列号即可- 用count数组统计每个组合键出现的次数,buf数组暂存第一次出现该组合键的行内容:第一次遇到组合键时存储整行内容,后续再遇到同一组合键时,先打印第一次存储的行,再打印当前行,保证所有重复的行都能正常输出,不会出现重复打印的问题
测试效果
针对你给出的示例文件执行上述命令后,输出结果为:
1/1/2|HR|45044|Berlin|Germany 5/1/2|HR|45044|Swiss|Germany
和预期输出完全一致。
内容的提问来源于stack exchange,提问作者Enigmaderockz
相关产品推荐
相关产品推荐

