我有一个大的制表符分隔的4列.txt文件
col1 col2 col3 col4
name1 1 2 ens|name1,ccds|name2,ref|name3,ref|name4
name2 3 10 ref|name5,ref|name6
... ... ... ...
现在,我想从该文件中提取所有以“ ref |”开头的内容。此模式仅存在于col4中
所以对于这个例子,我想作为输出
ref|name3
ref|name4
ref|name5
ref|name6
我曾想为此使用“ sed”,但我不知道从哪里开始。
我认为awk
更适合此任务:
$ awk '{for (i=1;i<=NF;i++){if ($i ~ /ref\|/){print $i}}}' FS='( )|(,)' infile
ref|name3
ref|name4
ref|name5
ref|name6
FS='( )|(,)'
设置一个multileFS
来通过,
和迭代列blank spaces
,然后在找到ref
模式时打印该列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句