使用AWK根据CSV文件中重复/重复的单个行字段保留行

时间:2018-05-20 14:09:48

标签: bash awk

有人会帮我在Bash中形成一个脚本,只保留唯一的行,完全基于在单个字段中识别重复值(第一个字段)

如果我有这样的数据:

123456,23423,Smith,John,Jacob,Main  St.,,Houston,78003<br>
654321,54524,Smith,Jenny,,Main  St.,,Houston,78003<br>
332423,9023432,Gonzales,Michael,,Everyman,,Dallas,73423<br>
123456,324324,Bryant,Kobe,,Special St.,,New York,2311<br>
234324,232411,Willis,Bruce,,Sunset Blvd,,Hollywood,90210<br>
438329,34233,Moore,Mike,,Whatever,,Detroit,92343<br>
654321,43234,Smith,Jimbo,,Main  St.,,Houston,78003<br>

我喜欢只保留没有匹配第一个字段的行 (根据以上样本,结果将是以下这些内容的文件)

332423,9023432,Gonzales,Michael,,Everyman,,Dallas,73423<br>
234324,232411,Willis,Bruce,,Sunset Blvd,,Hollywood,90210<br>
438329,34233,Moore,Mike,,Whatever,,Detroit,92343<br>

bash / awk方法是什么?提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果你不关心输出的顺序应该与Input_file相同,那么跟随单awk可以帮助你。

awk -F, '{a[$1]++;b[$1]=$0} END{for(i in a){if(a[i]==1){print b[i]}}}'  Input_file