Como usar o grep para uma única citação?

Como usar o grep para uma única citação?

Estou examinando alguns arquivos de origem VB. Eu uso a seguinte consulta -

     grep -nr "GlobalCommArea\s*=\s*.*\.Transaction" . 

Algumas das linhas, entretanto, são comentadas e começam com um comentário de uma única linha. Um comentário de linha única em VB começa com uma aspa simples - '

Infelizmente, não posso simplesmente remover todas as linhas que possuem aspas simples, porque algumas das linhas possuem um comentário de aspas simples após a linha de código.

Então tentei algo assim para remover as aspas simples no início da linha

     grep -nr "GlobalCommArea\s*=\s*.*\.Transaction" . | grep -v "^\s*'"

No entanto, isso não funcionou. Como fazer isso?

Responder1

Você está usando grep -nquais prefixos correspondem aos números de linha, portanto, seu segundo padrão "^\s*'"nunca corresponderá. Em vez disso, você pode usar um único regex:

grep -nr "^[^']*GlobalCommArea\s*=\s*.*\.Transaction" .

Isso procura instâncias do seu padrão não precedidas por aspas simples.

informação relacionada