awk correspondência estendida de padrões (incorporação de correspondência de padrões em ações para strings já correspondidas) [closed]

1

Eu quero manipular as strings do formulário:

PREFIX_TYPE_N,DATA

Então, o * awk (gawk, mawk, nawk) suporta a correspondência de padrões na ação para uma string já correspondida? Algo como isso (claro, não funciona para mim):

*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"

Ou ainda preciso de if / else ou switch / case?

    
por static 05.09.2012 / 16:34

1 resposta

1

Isso deve funcionar, mas eu não sou especialista em awk, então pode haver respostas melhores se você esperar:

*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"
    
por 05.09.2012 / 17:35