awk可以定义输出的分隔符,其中默认的输出分隔符
echo “aaa bbb ccc” | awk -v OFS=“|” ‘{print $0}’
aaa bbb ccc
echo “aaa bbb ccc” | awk -v OFS=“|” ‘{$1=$1;print $0}’
aaa|bbb|ccc
通过上面的例子可以发现的是在定义了OFS之后,处理的文本并没有按照我们的预想一样进行正确的输出,而是第二次增加了$1=$1之后,才能输出。这是为什么呢?因为OFS是对字段进行操作的,只有我们队字段进行了操作,上面的结果才能正确的显现出来。除了利用$1=$1之外,我们还可以利用NF+=0同样可以实现类似的效果。
awk允许用户自定义输出分隔符(OFS),但在设置后并不立即生效,需要对字段进行操作如$1=$1,或者使用NF+=0,才能观察到变化。这是因为OFS只影响字段间的分隔,不改变原有字段内容。例子展示了这一行为。
1168

被折叠的 条评论
为什么被折叠?



