次のコマンドを使用して、数値の合計をファイル (wa_cidr) の変数 (cwr) に抽出しようとしています。
cwr=$(grep -E "^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$" /tmp/wa_cidr | awk -F '/' '`{n += 2**(32 - $NF)}` END {print n}')
ただし、出力は空です。
パーツを変えると・・・
{n += 2**(32 - $NF)}
に...
{n += (32 - $NF)}
cwr 変数に有効な結果が書き込まれます。
AWK で 2**X または 2^X を使用して (32 - $NF) のべき乗を実行できないようです。
コマンドラインでそれを行う場合、たとえば...を使用して...
$ echo $(2**5)
問題ありません。結果は 32 です。
数式 (括弧など) で多くのバリエーションを試しましたが、何も機能していないようです。
なにが問題ですか?別の方法で行うことはできますか?
ありがとう、ソーレン