Comando Mac Terminal - Encontre uma string e imprima com a linha circundante

1

Eu tenho testado usando ack, sed, grep tentando pesquisar arquivos em um diretório para encontrar uma string específica. Eu estou olhando através de meus arquivos de banco de dados para verificar se as senhas estão listadas em texto claro. Até agora, eu pude usar este comando: grep -Ri "search_string" / path_to_Folder

No entanto, isso só gera os arquivos que contêm a string. Eu quero ir um passo além e imprimir a linha ao redor da string para que eu não tenha que entrar e pesquisar cada arquivo.

Espero que isso faça sentido. Muito obrigado.

    
por user3324136 26.02.2017 / 03:39

1 resposta

1

Se eu estou entendendo corretamente, para:

print out the line around the string

você pode usar a opção -C (context) do grep, assim:

grep -aRi -C 1 "search_string" /path_to_Folder

, que imprimirá três linhas para cada partida: a linha antes da partida, a linha correspondente e a linha após a partida.

Como os arquivos do banco de dados são binários, também precisamos do grep's -a, para que ele trate os arquivos como texto.

Execução da amostra:

$ grep -aRi jeff *
a/b/c/i:jeff
a/b/i:jeff
a/i:jeff
i:jeff

vs

$ grep -aRi -C1 jeff *
a/b/c/i-hi
a/b/c/i:jeff
a/b/c/i-bye
--
a/b/i-hi
a/b/i:jeff
a/b/i-bye
--
a/i-hi
a/i:jeff
a/i-bye
--
i-hi
i:jeff
i-bye
    
por 26.02.2017 / 16:09