como listar nomes de arquivos ao procurar por cadeias de caracteres passadas por cat com pipe

1

Eu quero procurar por uma string nos arquivos em um diretório como:

cat /etc/pam.d/*  | grep  pam_ck_connector.so

mas também quero listar os nomes dos arquivos nos quais a string pam_ck_connector.so foi encontrada. A opção grep -l é aparentemente para esse fim, mas falha neste caso:

cat /etc/pam.d/*  | grep -l pam_ck_connector.so

(standard input)

Qual é o algoritmo correto para alcançar o que eu quero?

    
por kenn 06.03.2016 / 21:59

1 resposta

4

Este é um Uso inútil de gato canônico canônico. Use grep diretamente:

grep -R pam_ck_connector.so /etc/pam.d/

Com o sinal -R , ele pesquisará recursivamente no diretório. Se, por algum motivo, você não quiser pesquisar subdiretórios e quiser apenas imprimir nomes de arquivos, faça:

grep -l pam_ck_connector.so /etc/pam.d/*

O sinalizador -l é para imprimir apenas os nomes dos arquivos.

    
por muru 06.03.2016 / 22:08