listar arquivo e usar o awk para receber um comentário

0

Eu quero receber todos os comentários de todos os arquivos em uma pasta.

E o que tentei é

ls -R | awk '/<!--/,/-->/' >> result

Mas não mostra nada no arquivo de resultados.

Mas se eu usar o awk '/<!--/,/-->/' >> result em um arquivo, ele funciona.

A tag de comentário html é <!-- some text here --> .

Como devo corrigir isso?

    
por Jason 27.03.2015 / 20:04

2 respostas

1

Seu awk está olhando os nomes dos arquivos e não o conteúdo do arquivo. Aqui está uma abordagem melhor:

find ./ -type f -execdir grep "<!--.*-->" "{}" +

Isso usa find para obter uma lista de todos os arquivos e, em seguida, os alimenta em grep , que pesquisa o texto que você está procurando. Em seguida, ele exibirá o nome de qualquer arquivo correspondente seguido por dois pontos (:) e o texto da linha correspondente.

    
por 27.03.2015 / 20:21
1

ls -R listará apenas o nome do arquivo e não o conteúdo do arquivo. Você pode fazer isso de uma maneira mais simples usando o comando grep .

grep -rn '<!--.*-->'

Ou, se desejar fazer isso usando awk , você poderá usar cat * para listar todo o conteúdo do arquivo em um diretório.

cat * | awk '/<!--/,/-->' 

Nota: Esta abordagem funciona apenas se o seu diretório contiver arquivos.

Se você quiser listar todo o conteúdo em todos os diretórios. Você pode tentar isso

find . -type f | xargs cat | awk '/<!--/,/-->/'
    
por 28.03.2015 / 11:42