次のファイルがあります。値が数値の場合は左にゼロを埋め込みたいのですが、値が文字列の場合はそのままにしておきます。
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