$ echo "a b c" | awk 'BEGIN {OFS=","}; {print $0};' -
a b c
我试图看看OFS
是否适用于最后一个字段,所以期望输出为
a,b,c
或
a,b,c,
但OFS
的更改无效。为什么?
答案 0 :(得分:6)
您应该更改/设置字段,以便重新计算$0
,然后将应用OFS
。 E.g。
echo "a b c" | awk 'BEGIN {OFS=","}; {$1=$1;print $0};'
答案 1 :(得分:2)
{print $ 1,$ 2,$ 3}将使用OFS值,无论是否更新任何字段。但这种解决方案不可移植。我希望其他更好的解决方案,如print $ WITH_OFS,可能是AWK的新功能。
答案 2 :(得分:1)
$ 0。但是,当您分配给任何元素(包括任何不存在的字段)时,$ 0会被修改。
回声" a b c" | awk' BEGIN {OFS =","}; {$ 4 ="&#34 ;; print $ 0};' -
给出:a,b,c,