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}''。 –