Procure palavra dentro do arquivo no diretório

0

Eu sou novo na Bash. Eu tenho um diretório tags com muitos arquivos .txt com nomes semelhantes como este

[coral/home/tags]$ ls:
file1.txt file2.txt file3.txt file4.txt

Cada arquivo .txt contém informações como esta:

line1 b1
line2 b2
line3 b3
line4 b4

Eu quero procurar em todos os arquivos de texto e encontrar aqueles com a palavra b3 . Se o arquivo contiver essa palavra, quero que o script escreva a linha inteira e o arquivo de texto que contém essa palavra.

Esta é a minha tentativa falhada:

#!/usr/bin/env                                                           
PATH=path/to/files
for x in $PATH:
do
  echo $x
done
    
por karla 27.04.2015 / 03:15

1 resposta

1

se você não se importa em usar o grep:

no diretório tags : grep -Hrn 'b3' .

  • -H imprime o nome do arquivo (implícito quando vários arquivos estão sendo pesquisados)
  • -r pesquisas recursivamente
  • -n imprime o número da linha
  • . curinga

Opção potencialmente interessante: %código% você pode ajustar o número% de linhas de grep -C 3 'b3' path/to/files de linhas retornadas antes e depois de uma correspondência (aqui, é -C ).

    
por 27.04.2015 / 04:45