Imprimir linha para palavra encontrada no arquivo no diretório

2

Olá, estou usando esta linha

find ./ -iname *txt | xargs grep "ququ" -sl>holis.txt

Para localizar o texto "ququ" em um arquivo txt e, em seguida, escreva o nome do arquivo que contém essa palavra no arquivo txt, holis.txt,

Minha pergunta é como escrever a linha que contém tal caractere e também a linha anterior

    
por karla 27.04.2015 / 06:36

1 resposta

1

how can i write the line that contains such character and also the previous line

Use -B1 .

Por exemplo:

$ seq 10 >file
$ grep -B1 5 file
4
5

Se você quiser incluir o nome do arquivo, adicione -H :

$ grep -HB1 5 file
file-4
file:5

Combinado com find

Supondo que você tenha o GNU find ou um moderno BSD find , seu comando completo pode ser simplificado para:

find ./ -iname '*txt' -exec grep -HB1 "ququ" {} + >holis.txt
    
por 27.04.2015 / 07:19