注意,所有的輸入被視爲字符串直到隱含如何使用它進行轉換。當字符串轉換成數字,
OFMT
使用例如:
<<< 0.77767686 awk '{ print 0+$0 }' OFMT='%.2g'
CONVFMT
當號碼被轉換成字符串時,例如:在這兩種情況下
<<< 0.77767686 awk '{ print "" 0+$0 }' CONVFMT='%.2g'
輸出:
0.78
後者將$0
int一個數字,然後將它與空字符串連接起來。通過連接
<<< '0.77767686 0.76555555 0.6667667 0.77878878' \
awk '{ print 0+$0 RT }' CONVFMT='%.2g' RS='[ \t\n]+' ORS=''
注意的兩次轉換,先用0+$0
一個號碼,然後返回一個字符串:
爲了實現這一目標,每列我會建議使用的輸入和輸出的記錄分隔符的合理設置它與RT
。 RT
將被設置爲匹配的記錄分隔符。請注意,這是GNU的awk具體而言,作爲一個更便攜的解決方案,使用一個循環,例如:在這兩種情況下
<<< '0.77767686 0.76555555 0.6667667 0.77878878' \
awk '{ for (i=1; i<=NF; i++) $i+=0 } 1' CONVFMT='%.2g'
輸出:
0.78 0.77 0.67 0.78
'$ 0'是一個字符串,不是數字!使用'$ 1'..' $ 4'。 – TrueY