GNU sedとbashを使って四則演算を行う

sedでは四則演算とかの計算処理については対応していないのだが、bashと組み合わせる事で計算処理ができないかとやってみたので備忘で残しておく。
で、結論としては以下のように、e(置換や抽出した内容を元に組み立てたコマンドを実行する)を利用することで、bashで$((計算式))をechoさせることで計算をさせることができる。

echo 1234 | sed 's/[0-9]*/echo $((& + 1111))/ge'
blacknon@BS-PUB-UBUNTU-01:~$ echo 1234 | sed 's/[0-9]*/echo $((& + 1111))/ge'
2345
Sponsored Links

これを応用してやると、以下のように2桁ごとに抽出して計算をさせるような事もできる。

echo 1234 4567 7890 | sed -r 's/([0-9]{2})/echo $((&+5))\n/ge'
blacknon@BS-PUB-UBUNTU-01:~$ echo 1234 4567 7890 | sed -r 's/([0-9]{2})/echo $((&+5))\n/ge'
17
39
50
72
83
95

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*