从第2列中删除第1列中的字符串

时间:2018-05-15 09:47:32

标签: shell awk text-processing two-columns

我有一个非常大的ex​​cel文件(150000行)。对于每一行,我在第1列中都有一个字符串,我需要在第2列中找到并删除。

Input column 1    Input column 2                     Output column3
-------------------------------------------------------------------------
dog3456           dog3456; cat2345; chicken3595      cat2345; chicken3595
sheep23349        bird2048; rhino2948; sheep23349    sheep23349 
frog248034        toad3956; frog248034               frog248034

有人有任何建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我决定将您的两列电子表格导出为制表符分隔。

cat data.tab
dog3456 dog3456; cat2345; chicken3595 sheep23349 bird2048; rhino2948; sheep23349 frog248034 toad3956; frog248034

并且awk脚本输出第三列。

awk -F'\t' '{split($2,a,";"); for(i in a){gsub(" ","",a[i]); if(a[i]!=$1)printf("%s; ",a[i])}print ""}' data.tab

输出:
cat2345; chicken3595; bird2048; rhino2948; toad3956;