ゼロ加算
awk界隈ではよく見かける方法です。
printf記法、print記法共に16進数は予定通り動いてくれないので注意が必要です。
$ echo 123 0x123 | gawk '{print $1+0, $2+0}' 123 0 $ echo 123 0x123 | gawk '{printf "%d %d\n", $1+0, $2+0}' 123 0
strtonum関数
異分野から入った人間にとって、挙動を読みやすい方法です。
ゼロ加算と違って、16進数もヨロシク扱ってくれます。有能。
$ echo 123 0x123 | gawk '{printf "%d %d\n", strtonum($1), strtonum($2)}' 123 291
(非推奨)non-decimal-dataオプション
誘拐犯の要求が差し迫ったものになった場合、止むを得ず使う方法です。
shbangとの合わせ技で使う事もあるのかも知れませんが……少なくとも、後方互換性の関係で参考もとは推奨していません。
使う場合は自己責任で
$ echo 123 0x123 | gawk --non-decimal-data '{printf "%d %d\n", $1, $2}' 123 291
参考もと
- effective awk