awk中的多字段分隔符

时间:2014-11-13 01:00:34

标签: awk

我正在尝试处理包含两个字段分隔符;space的输入。我可以使用以下方法用一个分隔符解析输入:

echo "10.23;7.15;6.23" | awk -v OFMF="%0.2f" 'BEGIN{FS=OFS=";"} {print $1,$2,$3}'
10.23;7.15;6.23

对于带有两个分隔符的输入,我尝试了这个并且它没有解析两个分隔符:

echo "10.23;7.15 6.23" | awk -v OFMF="%0.2f" 'BEGIN{FS=OFS=";" || " "} {print $1,$2,$3}'

1 个答案:

答案 0 :(得分:3)

您想将FS设置为字符列表:

awk -F'[; ]' 'script' file

和您尝试设置的另一个内置变量名为OFMT,而不是OFMF

$ echo "10.23;7.15 6.23" | awk -F'[; ]' -v OFMT="%0.2f" '{print $1,$2,$3}'
10.23 7.15 6.23

$ echo "10.23;7.15 6.23" | awk 'BEGIN{FS="[; ]"; OFS=";"; OFMT="%0.2f"} {print $1,$2,$3}'
10.23;7.15;6.23