正则表达式中的分隔符Awk

时间:2013-05-02 18:59:07

标签: regex awk

我在标签限制文件aa-and-bb的第10列中有file.tsv这样的术语。

我可以aa-and-bb作为

cat file.tsv | awk 'BEGIN{FS="\t"};{print $10}'

如何从aa进一步获取aa-and-bb

4 个答案:

答案 0 :(得分:5)

您可以使用split()。

split( $10, arr, "-" ); print arr[ 1 ];

答案 1 :(得分:2)

如果您可以保证字段1-9中没有其他-,则可以添加-作为分隔符:

awk -F'\t|-' '{print $10}'

答案 2 :(得分:1)

我猜这三个词aaandbb都是可变的,你只需要第一个词。

cat file.tsv | awk 'BEGIN{FS="\t"};{print $10}' | sed 's/-.*$//'

答案 3 :(得分:1)

$ awk -F'\t' '{sub(/-.*$/, "", $10);print $10}' file.tsv
aa

但是,你的数据看起来并不是100%清晰,所以我们只是在猜测你想要在破折号上拆分。