• 締切済み

シェルスクリプト(sh)について、お聞きしたいこと

シェルスクリプトの処理が考えています。質問に対してよいアイディアがあればご教授願います。 下記のデータの計算方法をどのようにしたらよいかご教授願います。 ▼データ 開始時間: 23日 12:00 終了時間: 23日 13:00 ステータス:終了 転送元容量:10(MB) 転送容量:8(MB) ▼計算後(理想出力) 開始時間: 23日 12:00 終了時間: 23日 13:00 ステータス:終了 転送差分容量:-2(MB) 転送元容量:10(MB) 転送容量:8(MB) ※転送差分容量(転送容量-転送元容量) 補足 上記、データを計算後(理想出力)のような、出力結果にしたいとおもっています。 そんため、データをどのように加工いて計算すれば計算後(理想出力)のようになるのか よいアイデアを頂きたいと考えています。 ※shになります。 すみませんが、宜しくお願いいたします。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

shだけでは実現不可能なので、他のコマンドの助けを借ります ・数値の抜き出す,特定の条件の内容を編集する: sed (とgrep) ・演算する: expr または$(())による展開 ・実行結果を文字列にする: ` (バッククオート) 例えば、「転送元容量:10(MB)」から数値の部分だけ出力するには、sedを使うと sed -e '/^転送元容量:[0-9]*(MB)$/!d;s/^転送元容量:\([0-9]*\)(MB)$/\1/' 入力ファイル # なにやってるか、理解できますよね? これを``でくくれば a=`上のコマンド` で変数aに10が入る 同様にbに転送容量を抜き出せば expr $b - $a で計算できる その結果を「転送差分容量」として適当な箇所に挿入する ただ、awkやperlとか使った方が楽に作れると思います。

gokuu1985
質問者

補足

ありがとうございます。 awkも使える環境です。

関連するQ&A