Chinaunix

标题: 去除一行中相同的内容 [打印本页]

作者: SheIsTheOne    时间: 2018-08-03 09:07
标题: 去除一行中相同的内容


各位大神,去除重复行比较容易,但是如何去除一行中相同的内容:
例如 1.txt如下(文件共两列; tab分割; 第二列以;作为分隔符)

a GO:001;GO:002;GO:003;
b GO:001;GO:004;GO:007;GO:009;GO:004


生成的结果文件是(去除第二列中的重复内容):
a GO:001;GO:002;GO:003;
b GO:001;GO:004;GO:007;GO:009;


感激

作者: wh7211    时间: 2018-08-03 09:36
回复 1# SheIsTheOne


  1. awk '{b=split($2,a,";");for(i=1;i<=b;i++){c[a[i]]++;if(c[a[i]]==1){d=d?d";"a[i]:a[i]}};print $1,d;delete c;d=""}' file
复制代码

作者: christmas1102    时间: 2018-08-03 10:00
  1. awk -F'[ ;]' '{printf $1" ";for(i=2;i<=NF;i++){if(!a[$i]++&&$i){printf $i";"}}delete a;print ""}' 1.txt
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2