GNU/Linux >> Linux の 問題 >  >> Linux

「sed」を追加しますか?

sedで数学演算を実行しようとしています 、しかしそれは私の変数を文字列として扱い続けます。入力は次のようなものです:

  $ echo 12 | sed's / [0-9] * /&+ 3 /'$ 12 + 3  

15を出力したいのですが。プログラムをPythonデーモンとして実行しており、 stdout のリダイレクトなどのパッセージを避けたいので、操作を実行してその数学的な結果を1つのパッセージで置き換える必要があります。 ファイルに対して、それらのファイルを開き、操作を実行し、結果を抽出し、置換を行います。私にとって、 sed すべてを1行で実行するのが最善のようです。

のようなさまざまな方法で入力と出力の両方をキャストしようとしました
  $ echo 12 | sed's / [0-9] * / int(&+ 3)/' $ echo 12 | sed's / [0-9] * / int(&+ 3)/' $ echo 12 | sed's / [0-9] * / int(&+ 3)/'  

しかし、結果は常に2番目のフィールドの印刷でした。

承認された回答:

正直にsedを使用したい場合は、次の方法があります:

  s / [0-9] / <&/ gs / 0 // g; s / 1 / | / g; s / 2 / || / g; s / 3 / ||| / g; s / 4 / |||| / g; s / 5 / ||||| / g; s / 6 / |||||| / gs / 7 / ||||||| / g; s / 8 / |||||||| / g; s / 9 / ||||||||| / g:数十 / |  

入力:

  1 + 2100 + 250100-250  

出力:

  3350-150  

あなたがそれを受け入れることを選択した場合、あなたの使命は乗算を実装することです。


Linux
  1. スマートクォートをLinuxsedコマンドに置き換えます

  2. 特殊文字でSedを使用していますか?

  3. SedまたはGrepを使用して正規表現に従って部分文字列を抽出しますか?

  1. bashで単語を別の単語に置き換える

  2. sed を使用して区切り文字で文字列を分割する

  3. sed 特定の行にスペースを含む挿入行

  1. 文字を再帰的にsedに置き換える方法は?

  2. sed で数字を 2 桁にゼロ埋めする

  3. sed による正規表現