我有一个文件,其中的列由字符串分隔。例如:
one<xx>two<xx>three<xx>four<xx>five<xx>six
one11<xx>two11<xx>three11<xx>four11<xx>five11<xx>six11
我想提取特定列的文本,例如第 1、3 和 5 列。所以输出应该是:
one<xx>three<xx>five
one11<xx>three11<xx>five11
这个怎么做?使用命令,例如awk
?
答案1
将输入字段分隔符 ( FS
) 和输出字段分隔符 ( OFS
) 设置为<xx>
:
awk 'BEGIN{FS=OFS="<xx>"} {print $1,$2,$5}' file
输出:
one<xx>two<xx>five
one11<xx>two11<xx>five11
答案2
$ perl -F'<xxx>' -pale ' $"="<xxx>";$_ = "@F[1,3,5]"' file
将字段分隔符设置为所需的字符串,然后收集字段的索引,将它们与 $" 中的字符串连接起来并存储为当前记录。 -p 将自动打印。