我有以下文件,其中值爲數字時要填充零,但將值保留爲當值爲字符串:如何使用awk和printf設置數值爲數字或字符串時的列格式
cat test.txt
2032
12
XXXXX
507
334
這僅適用於數值,字符串被忽略:
awk '{printf "%05d\n",$1}' test.txt
02032
00012
00000
00507
00334
我可以用一個條件得到它,但有一個更簡單的方法?
awk '{if ($1 ~ /^[0-9]+$/) printf "%05d\n",$1; else printf "%s\n",$1}' test.txt
02032
00012
XXXXX
00507
00334
「數字」在你的上下文中意味着什麼?例如,如果「2.3」,「.5」,「NaN」,「Inf」,「1e3」中的任何一個是數字? – 2013-03-20 19:12:27
在這裏,數字將是整數。 – 2013-03-21 15:36:19