行頭にゼロに入った数値の文字列で0を解除する
先頭のゼロ(0)を取り除く
Linuxで先頭のゼロ(0)を取り除くには、sedコマンドで正規表現 s/^0+//g を使って行頭のゼロを削除するか、awkコマンドで数値変換する方法、またはcutやgrepコマンドで特定のパターンを処理する方法があります。
これはファイルやコマンドの出力を数値(整数)として扱いたい場合に行われ、数値変換によって自動的に先頭のゼロが消えます
sed コマンド (正規表現で置換)
0で埋められた「001」、「0010」等の文字列になっている数字で、先頭からある「0」を外したい場合があります。
sedコマンド「s/0*\([0-9]*[0-9]$\)/\1/g」を利用すれば、0で埋めた0を削除できます
$ echo "0010" | sed -e 's/0*\([0-9]*[0-9]$\)/\1/g' 10 $ echo "01" | sed -e 's/0*\([0-9]*[0-9]$\)/\1/g' 1 $ echo "0013213" | sed -e 's/0*\([0-9]*[0-9]$\)/\1/g' 13213
awk コマンド (数値変換)
awkで文字列を数値として扱わせると、自動的にゼロが削除されます。
echo "00123" | awk '{print $1+0}'
# 出力: 123
echo "01020" | awk '{print $1+0}'
# 出力: 1020
printf / sprintf (フォーマット指定)
特定の桁数にフォーマットし直す場合。
printf "%d\n" "00123" # 出力: 123
cut コマンド (特定の文字数で切り出し)
先頭のゼロが必ず特定の数(例:2桁)で、それ以降を抽出する場合。
echo "00123" | cut -c 3- # 出力: 123


