1 votes

comment lister les noms de fichiers lors de la recherche de chaînes de caractères passées par cat avec pipe

Je veux rechercher une chaîne de caractères dans les fichiers d'un répertoire comme :

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

mais je veux aussi lister les noms de fichiers dans lesquels la chaîne de caractères pam_ck_connector.so trouvé. grep -l est apparemment prévu à cet effet, mais il échoue dans ce cas :

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

(standard input)

Quel est l'algorithme correct pour obtenir ce que je veux ?

4voto

muru Points 180007

C'est un canon Utilisation inutile du chat . Utilisez grep directement :

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

Avec le -R il effectuera une recherche récursive dans le répertoire. Si, pour une raison ou une autre, vous ne voulez pas chercher dans les sous-répertoires et que vous voulez seulement imprimer les noms de fichiers, alors faites :

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

El -l permet d'imprimer uniquement les noms de fichiers.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X