linux - 通过与第一列进行比较,从文本文件的行中删除所有重复的单词

标签 linux perl

这是我的输入文件:

SC0001 : SC0001 SC0002 SC0001 
SC0004 : SC0004 SC0008 SC0001 SC0001 SC0004 SC0009 SC0000 SC0003 SC0002
SC0006 : SC0001 SC0006 SC0004 SC0005 SC0006 
SC0003 : SC0001 SC0003 
SC0008 : SC0008
SC0009 : SC0001 SC0009 SC0001 SC0001

输出应如下所示:

 SC0001 : SC0002 
 SC0004 : SC0008 SC0001 SC0009 SC0000 SC0003 SC0002
 SC0006 : SC0001 SC0004 SC0005  
 SC0003 : SC0001  
 SC0008 : 
 SC0009 : SC0001 SC0001 SC0001

最佳答案

perl -pe '%s=(); s/(\S+)/ $s{$1}++ ? "" : $1 /ge; s/ \K +//g' file

关于linux - 通过与第一列进行比较,从文本文件的行中删除所有重复的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22266194/

相关文章:

linux - 映射查询字符串参数出现

python - 什么是 Python 的 "perl -V"等价物

Perl 语法字符 "::"

arrays - 数组的perl散列

linux - 什么时候会选择在内核空间而不是用户空间编写软件?

linux - 无效命令 ‘Order’ ,可能拼写错误或由未包含在服务器配置中的模块定义失败

c++ - 这段代码不是线程安全的,不是吗?

c - 在文件服务器中休眠工作线程

perl - directory/.pm 曾经是一个约定吗?它为什么存在?

perl - 如何清除 Class::DBI 的内部缓存?