删除具有相同值的行

时间:2016-10-20 09:43:43

标签: bash sorting duplicates text-processing

我有一个大的制表符分隔文本文件,我想删除所有具有相同值的行并提取具有至少一个不同值的行;

FILE.TXT

Gen3    1.0 1.0 1.0 5.0 0.55    1.0 1.0 1.0 1.0
Gen6    0.4353  1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0

Output.txt的

perl -ne 'print if ! $a{$_}++'

不幸的是,我无法使用以下命令获得预期的输出;

sort -u

或者 uniqtype: file,它们不起作用,因为第一列的名称不同。

1 个答案:

答案 0 :(得分:2)

sort使用从第二个字段到结尾(-k2)的选定键:

sort -t '\t' -uk2 file.txt
  • -t '\t'将字段分隔符设置为Tab

  • -u根据所选键

  • 获取唯一条目

示例:

% sort -uk2 file.txt
Gen6 0.4353 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
Gen1 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
Gen3 1.0 1.0 1.0 5.0 0.55 1.0 1.0 1.0 1.0