awk拡張パターンマッチング(すでに文字列に一致するジョブにパターンマッチングを含む)

awk拡張パターンマッチング(すでに文字列に一致するジョブにパターンマッチングを含む)

次の形式の文字列を処理したいと思います。

PREFIX_TYPE_N,DATA

では、*awk(gawk, mawk, nawk) は、すでに文字列と一致するジョブにパターン一致を含めることをサポートしていますか?次のようなもの(もちろん私には効果がありません):

*awk 'BEGIN { FS="," }
     /PREFIX/ {
                /TYPE_1/  {printf "[TYPE1] [DATA: $2]"}    // <-- included pattern 
                /TYPE_2/  {printf "[TYPE2] [DATA: $2]"}    // <-- another included pattern
                ...                                        // <-- some more included patterns
              }' "filename"

それともまだif/elseまたはスイッチ/ケースが必要ですか?

ベストアンサー1

これはうまくいきますが、私は専門家ではないので、待つとより良い答えがあるかもしれません。

*awk 'BEGIN { FS="," }
     /PREFIX/ {
                if ($0 ~ /TYPE_1/)  {printf "[TYPE1] [DATA: $2]"}    // <-- included pattern 
                if ($0 ~ /TYPE_2/)  {printf "[TYPE2] [DATA: $2]"}    // <-- another included pattern
                ...                                        // <-- some more included patterns
              }' "filename"

おすすめ記事