Como encontrar todos os arquivos css contendo # page-title no Linux?

4

Eu sei que grep -irn "#page-title" pesquisará todos os arquivos pelo texto correspondente, mas, por motivos de desempenho, gostaria de limitar a pesquisa SOMENTE a arquivos que são arquivos css. No Windows PowerShell, é:

ls *.css -r | select-string "#page-title"

Pontos de bônus, como limitar isso a arquivos que NÃO são prefixados com css_

    
por George Mauer 28.10.2011 / 00:12

3 respostas

7
find -name "*.css" ! -name "css_*" | xargs grep -H "#page-title"

find é o find da linha de comando unix, com 2 conjuntos de parâmetros. O primeiro parâmetro, -name "*.css" , diz ao find para procurar por arquivos com a extensão CSS, o parâmetro ! -name "css_*" informa ao find para excluir ou ignorar arquivos que começam com css_ . Essa lista de arquivos é então canalizada para o comando xargs, que passa a lista como parâmetros para o comando grep, que é informado para encontrar "# page-title" na lista e imprimir o nome do arquivo, usando o parâmetro -H .

    
por 28.10.2011 / 00:21
4

Isso deve fazer o truque

grep -r --include="*.css" "#page-title" ./
    
por 12.12.2015 / 18:09
0

Acabei de enviar os grepcss: link

O grepcss entende a linguagem CSS, então você pode fazer o comando find como descrito acima com

| xargs grepcss -s '#page-title'
    
por 09.08.2013 / 11:25