Linuxで2つの数字を追加したいです。数字の前にゼロが含まれています。

Linuxで2つの数字を追加したいです。数字の前にゼロが含まれています。

Linuxで2つの数字を追加したいです。数字の前にゼロが含まれています。たとえば、次のようになります。

000 + 1 = 001,
111 + 4 = 115

ベストアンサー1

これを基本的に実行できるツールがあるかもしれませんが、次の関数を使用して実行できました。

math_func () {
    local _n1=$1
    local _op=$2
    local _n2=$3
    local _p
    local _a
    if [ "${#_n1}" -gt "${#_n2}" ]; then
        _p=${#_n1}
    else
        _p=${#_n2}
    fi
    _a=$(echo "scale=0; $_n1 $_op $_n2" | bc -l)
    printf "%0${_p}d\n" "$_a"
}

これは減算、乗算、除算も行います(もちろん、乗算演算子をエスケープする必要があり、浮動小数点数を処理しません)。

両方の入力番号の長さを確認し、出力のゼロパディングサイズをより大きな値に設定します。

次のように呼び出すことができます。

$ math_func 000 + 1
001
$ math_func 000000500 \* 5
000002500
$ math_func 010 / 2
005
$ math_func 2 - 1
1

おすすめ記事