行のオペコード(コマンド)に基づいてADDまたはSUB番号

行のオペコード(コマンド)に基づいてADDまたはSUB番号

awk入力ファイルの行に対して要求された内容に応じて、追加または減算できるスクリプトをどのように作成できますか?私は1つのスクリプトで加算または減算のみを実行し、どちらかを実行しない方法を見つけました。

たとえば、次のような入力が必要です。

ADD 5,10,20
SUB 30,5,20

次の出力を生成します。

35
-55

これが私がこれまでに書いた内容です:

#!/bin/awk 
BEGIN {
    FS=","
}

{
    for(i=1;i<=NF;i++) 
        sum+=$i; 
    print sum; sum=0}

しかし、明らかに加算だけするだけで、すべての数字を得ることはできないようです。

ベストアンサー1

いくつかのヒント:

  • フィールド区切り文字としてスペースまたはカンマを使用します。FS = "[ ,]"
  • それからあなたがしたように数字を追加します。i = 2
  • 最初のフィールドがある場合は、SUB合計に-1を掛けます。

おすすめ記事