如何让awk尊重字段分隔符?

时间:2013-12-10 12:36:43

标签: awk gawk

大家

我使用逗号作为字段分隔符将一行传递给awk。我仍然希望使用逗号作为分隔符来生成输出。但是,awk将逗号更改为空格。

echo "qwer,asdf,zxcv" | awk -F',' '{gsub("a","b",$2); print $0}'
qwer bsdf zxcv

有没有办法让awk尊重原始输入的分隔符?

2 个答案:

答案 0 :(得分:3)

您可以使用awk

执行此操作
echo "qwer,asdf,zxcv" | awk -F, '{gsub("a","b",$2); print $0}' OFS=,
qwer,bsdf,zxcv

答案 1 :(得分:2)

定义OFS,即输出字段分隔符:

$ echo "qwer,asdf,zxcv" | awk -F',' 'BEGIN{OFS=","}{gsub("a","b",$2); print $0}'
qwer,bsdf,zxcv

另请注意,{print $0}可以跳过,-F块中也包含BEGIN{}

$ echo "qwer,asdf,zxcv" | awk 'BEGIN{FS=OFS=","}{gsub("a","b",$2)} 1'
qwer,bsdf,zxcv

1我们提供一个真实条件,默认情况下评估为{print $0}