如何使用字符串分隔符从文件中选择特定列

如何使用字符串分隔符从文件中选择特定列

我有一个文件,其中的列由字符串分隔。例如:

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

看:8 个强大的 awk 内置变量 – FS、OFS、RS、ORS、NR、NF、FILENAME、FNR

答案2

$ perl -F'<xxx>' -pale ' $"="<xxx>";$_ = "@F[1,3,5]"' file

将字段分隔符设置为所需的字符串,然后收集字段的索引,将它们与 $" 中的字符串连接起来并存储为当前记录。 -p 将自动打印。

相关内容