Grep: Contém uma string específica em todos os arquivos recursivos com o nome do arquivo matchi

2

Eu já consegui contar strings em todos os arquivos no diretório:

grep -roh „XXX" . | wc –w

Mas eu não sei como isolar a afirmação. Eu só quero contar as palavras em arquivos que têm a seguinte string "2015-09-25" no nome do arquivo.

Alguém pode me ajudar aqui?

    
por user3014314 25.11.2015 / 16:05

2 respostas

1

Isso deve funcionar, ele usa find para isolar os arquivos nos quais você está interessado e, em seguida, executa o grep apenas nesses arquivos:

find /mydir -maxdepth 1 -type f -name "*2015-09-25*" -execdir grep -roh "XXX" "{}" \+ | wc -w

Se você quiser encontrar arquivos em subdiretórios do / mydir, apenas remova -maxdepth 1

    
por 25.11.2015 / 16:08
1

Se todos os arquivos estiverem no diretório atual, tente

grep -oh "XXX" *2015-09-25* 

mais tente

 grep -roh -c --include="*2015-09-25*" "XXX" 

onde

  • -r diz ao grep para recurse
  • --include="*2015-09-25*" filter no nome de base do arquivo.
por 25.11.2015 / 16:35

Tags