删除包含重复单元格的行

时间:2011-07-12 14:48:21

标签: text duplicates

我需要删除具有重复值的行。例如,我需要删除下面的块中的第1行和第3行,因为它们包含“Value04” - 我无法删除包含Value03的所有行,因为有些行与该数据不重复且必须保留。我可以使用任何编辑器; excel,vim,任何其他Linux命令行。

最后应该没有重复的“UserX”值。 User1应该只出现一次。但是如果User1存在两次,我需要删除包含“Value04”的整行,并保留一行“Value03”

Value01,Value03,User1
Value02,Value04,User1
Value01,Value03,User2
Value02,Value04,User2
Value01,Value03,User3
Value01,Value03,User4

非常感谢您的想法和想法。

编辑:为了清晰起见并在编辑过程中留下文字。

2 个答案:

答案 0 :(得分:1)

以下Awk命令会删除第三列中第一次出现的所有值:

$ awk -F',' '{
  if (!seen[$3]) {
    seen[$3] = 1
    print
   }
}' textfile.txt

输出:

Value01,Value03,User1
Value01,Value03,User2
Value01,Value03,User3
Value01,Value03,User4

答案 1 :(得分:0)

在Perl中也是如此:

perl -F, -nae 'print unless $c{$F[2]}++;' textfile.txt 

这使用autosplit模式:“ - F,-a”用逗号分割并将结果放入@F数组