我有一个包含 2 列的 csv 文件
bob,red
bob,red
sam,blue
judy,black
sam,blue
nick,blue
judy,red
sam,blue
nick,red
don,red
judy,blue
在 Ubuntu 中使用 bash 我需要一个过滤器来仅选择第一列值多次出现但与第二列中超过“X”个值匹配的行。 所以如果 "X"= 2 结果将是
judy,black
judy,red
judy,blue
nick,blue
nick,red
或者如果“X”= 3
judy,black
judy,red
judy,blue
最佳答案
你可以使用
sort -u 1.csv
去除重复值。然后,您可以计算第 1 列值的出现次数:
sort -u 1.csv | cut -f1 -d, | sort | uniq -c | sort -n
现在,您可以使用 sed
只选择正确的出现次数:
sort -u 1.csv | cut -f1 -d, | sort | uniq -c | sort -n | sed -n '/ 2 /,$p'
剩下的留给读者作为练习。
关于linux - 过滤txt文件中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15703141/