行頭にゼロに入った数値の文字列で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

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です