【发布时间】:2014-04-14 00:33:46
【问题描述】:
我想删除我的数据文件中包含第 2 列中的值的所有行,该值在其他行的第 2 列中重复。
我已按第 2 列中的值排序,但不知道如何仅将 uniq 用于一个字段中的值,因为值不一定具有相同的长度。
或者,我可以使用像
这样的 awk 单行来删除带有重复项的行awk -F"[,]" '!_[$2]++'
但这会保留第 2 列中重复值第一次出现的行。
例如,如果我的数据是
a,b,c
c,b,a
d,e,f
h,i,j
j,b,h
我想删除第二列中出现 b 的所有行(包括第一行)。 像这样:
d,e,f
h,i,j
感谢您的建议!!
【问题讨论】:
-
不一定使用 awk。我最初是在寻找 grep 或 uniq 的解决方案,但我对任何事情都持开放态度。
-
行的输出顺序重要吗?
-
不,行的输出顺序无关紧要。谢谢!