AWK可以用千位分隔符字符打印号码:与千位分隔符报价
$ awk "BEGIN {printf \"%'d\", 1000}"
1,000
但是,它需要一个单引号的事实意味着你必须逃脱整个脚本 每"
和$
:
$ echo 1000 2000 | awk "{printf \"%'d\", \$2}"
2,000
这里很容易,但可能会带来很大的麻烦。我想 做这样的:
$ echo 1000 2000 | awk '{printf z, $2}' z="%'d"
2,000
但即使这样也不是很大了先进的例子:
我试着用OFMT
和CONVFMT
搞乱,但他们似乎没有任何效果:
$ echo 1000 2000 | awk '{print $2}' OFMT="%'d" CONVFMT="%'d"
2000
这些变量可以以我试图使用它们的方式使用,或者是另一种 me可以更好地处理报价问题吗?
我想我可能会用'AWK -f script.awk'去回避问题完全引用。如有必要,我会使用一个here文档,可能带有一个带引号的标记('<<'EOF'')来创建脚本。你甚至可以使用Bash [进程替换](http://www.gnu.org/software/bash/manual/bash.html#Process-Substitution)来避免一个明确命名的临时文件,尽管我不'我认为这样很容易阅读。总是有'精心选择的五种引用'技巧:'awk'BEGIN {printf'%'''''d',1000}''或规范的'awk'BEGIN {printf“%'\''d”, 1000}''。 –