grep -v -A não está funcionando corretamente (na verdade não está funcionando)

1

Eu tenho que filtrar linhas como as seguintes:

[javac] /Users/looris/Sviluppo/android/projects/toutry/src/net/looris/toutry/Stuff.java:23: warning: unmappable character for encoding ascii
[javac]             return (poked=false); // NOTA: è un'assegnazione, non un controllo!
[javac]                                                ^

Eu tentei |grep -v -A2 "unmappable character for encoding ascii" , mas não faz nada.

Se eu fizer apenas |grep -v "unmappable character for encoding ascii" , ele filtrará essa linha, mas também preciso filtrar as duas linhas a seguir.

(usando "grep (GNU grep) 2.5.1" no OSX 10.5)

    
por o0'. 17.04.2010 / 16:45

1 resposta

2

Se você chamar grep -A2 -v , ele começará a pular linhas se houver mais de 2 linhas depois uma da outra que contenham o padrão de pesquisa, que obviamente não é o que você deseja. Tente isto:

| awk 'BEGIN { skip = 0 } /unmappable character for encoding ascii/ { skip = 3 } { if (skip > 0) { skip-- } else { print $0 } }'

O código AWK foi expandido:

BEGIN { 
    skip = 0
}
/unmappable character for encoding ascii/ { 
    skip = 3
}
{ 
    if (skip > 0) { 
        skip--
    } else { 
        print $0
    } 
}
    
por 17.04.2010 / 18:58

Tags