我有一个.conf 文件的数量在下面的 ”管理员《目录及疑点文字》tanguay.info“就在其中一个地方。
我执行这个命令:
cat /etc/httpd/conf/lxadmin/* | grep "tanguay.info"
它告诉我:
cat: /etc/httpd/conf/lxadmin/forward: Is a directory
Include /home/httpd/tanguay.info/conf/lxadmin.tanguay.info
所以我知道它在那里某处但它没有告诉我在哪个文件中。
我怎样才能让它告诉我文本位于哪个文件中?
答案1
grep "tanguay.info" /etc/httpd/conf/lxadmin/*,只要该文件不在子目录中。
答案2
如果有子目录,你可以使用
rgrep "tanguay.info" /etc/httpd/conf/lxadmin/
或者
grep -r "tanguay.info" /etc/httpd/conf/lxadmin/
编辑:
您还可以使用确认,一个用 perl 编写的增强型 grep(独立版本上不需要 deps)。ack 默认通过目录递归搜索。
ack "tanguay.info" /etc/httpd/conf/lxadmin/
在 Ubuntu 上,您可以在 ack-grep 包中找到它。
答案3
您正在寻找的是显示匹配文件名和匹配-H
的选项。您还可以添加以递归方式搜索目录。即grep
-r
$ grep -r -H "tanguay.info" /etc/httpd/conf/lxadmin/
答案4
# cd /directory/of/files/
# grep -A 5 -B 5 'keywords' *
显示前 5 行和后 3 行,以便您可以看到关键字的上下文
对于理解关键字在文件中的使用方式有很大帮助