我有一个大的制表符分隔文本文件,我想删除所有具有相同值的行并提取具有至少一个不同值的行;
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
或者
uniq
或type: file
,它们不起作用,因为第一列的名称不同。
答案 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