awk无法使用管道或文本文件打印OFS

时间:2018-12-23 17:00:33

标签: awk

我在使用ubuntu,请帮助我做错了事

$ echo "hello there" | awk -v OFS=";" '{print $0 $1 $2}'
hello therehellothere
$ echo "hello there" | awk 'BEGIN {OFS=","} {print $0 $1 $2}'
hello therehellothere
$ awk 'BEGIN {OFS=","} {print $0 $1 $2}' hello.txt
hello therehellothere

1 个答案:

答案 0 :(得分:3)

打印需要,来分隔每个输出变量/值:

$ echo "hello there" | awk -v OFS=";" '{print $0,$1,$2}'
#=> hello there;hello;there
$ echo "hello there" | awk 'BEGIN {OFS=","} {print $0,$1,$2}'
#=> hello there,hello,there

空格用于简单地连接每个字符串/变量。
在需要OFS时使用空间是一个错误,但对于某些需求来说很方便。