awk 分隔符

##awk 分隔符
echo ‘aaa bbb ccc ddd’ |awk -v OFS=”|” ‘{print $1,$2,$3}’
可以正常工作
echo ‘aaa bbb ccc ddd’ |awk -v OFS=”|” ‘{print $0}’
OFS为什么没有生效呢,原因是OFS指的是输出字段分隔符,所以必须对字段进行操作时OFS才会起作用,正确的方法应该是:
echo ‘aaa bbb ccc ddd’ |awk -v OFS=”|” ‘{$1=$1;print $0}’
正如Tim大师所讲的,$1=$1这个action,是我们对awk撒的谎,目的就是为了使得OFS生效,除此之外,NF+=0也是常用的方法
来自:http://bbs.chinaunix.net/thread-2309494-1-1.html