如何在搜索 cat 使用管道传递的字符串时列出文件名

如何在搜索 cat 使用管道传递的字符串时列出文件名

我想在目录中的文件中搜索字符串,例如:

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

但我还想列出字符串在哪些文件中pam_ck_connector.so找到的文件名。grep -lswitch 显然是为了这个目的,但在这种情况下失败了:

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

(standard input)

实现我想要的正确算法是什么?

答案1

这是一个规范Cat 的无用用途.grep直接使用:

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

使用该-R标志,它将递归搜索目录。如果出于某种原因,您不想搜索子目录而只想打印文件名,请执行以下操作:

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

-l标志仅用于打印文件名。

相关内容