Grep Espaço em branco em várias linhas

2

Dado o seguinte em vários arquivos de texto (.vb):

Partial Class [A-Za-z0-9_]
  Inherits System.Web.UI.Page

End Class

Estou tentando fazer o grep para arquivos que possuem este arquivo de código basicamente vazio, para gerar uma lista desses arquivos e excluí-los.

grep "Inherits System.Web.UI.Page[:space:]*End Class" -r

No entanto, o grep acima não funciona ... E depois de ler as classes de caracteres POSIX e as páginas man do grep, estou perplexo

    
por enorl76 10.04.2015 / 15:39

1 resposta

1

Por padrão, grep corresponde apenas a linhas únicas. Mas você pode usar a opção -z ( --null-data ) para forçá-la a tratar a entrada como um conjunto de linhas:

grep -Pzo -r "Inherits System.Web.UI.Page(\s|\n)*End Class" *

Outra opção é usar a opção pcregrep com o -M , assim:

pcregrep -M 'Inherits System.Web.UI.Page(\n|\s)*End Class'
    
por 10.04.2015 / 15:51

Tags