我想在目录中的文件中搜索字符串,例如:
cat /etc/pam.d/* | grep pam_ck_connector.so
但我还想列出字符串在哪些文件中pam_ck_connector.so
找到的文件名。grep -l
switch 显然是为了这个目的,但在这种情况下失败了:
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
标志仅用于打印文件名。