删除重新出现的行

时间:2014-02-28 12:21:56

标签: bash shell

如何更改文本文件以便仅删除具有相同单词的行?

示例:

  1. 蓝绿黄色
  2. 红橙棕色
  3. 紫粉红绿
  4. 期望的输出

    1. 蓝绿黄色
    2. 红橙棕色
    3. 因为找到了绿色这个词,所以该行已被删除

1 个答案:

答案 0 :(得分:1)

perl -ne 'my $p=1;@w=split;for(@w){$p=0 if $w{$_}}print if $p;$w{$_}=1 for(@w)' file

技巧:我正在使用数组@w作为当前行的单词,并使用哈希%w表示前一行中遇到的所有单词。 $p用于表示打印是必要的。

这将打印foo bar foo。 一个没有的版本,甚至更容易,但它留给OP作为练习。 :-)