[英]How to find all files containing specific text (which includes a backslash)?
我以为我找到了如何在Linux上找到包含特定文本的所有文件的完美答案? ,所以我尝试了:
[Michael@devserver ~]$ grep -rnw '/var/www/concrete5.7.5.9/' -e "Concrete\Core\Block\BlockController"
[Michael@devserver ~]$
没有显示,但我知道应该有一场比赛。
[Michael@devserver ~]$ grep -rnw '/var/www/concrete5.7.5.9/concrete/blocks/html' -e "BlockController"
/var/www/concrete5.7.5.9/concrete/blocks/html/controller.php:5:use \Concrete\Core\Block\BlockController;
/var/www/concrete5.7.5.9/concrete/blocks/html/controller.php:7:class Controller extends BlockController
[Michael@devserver ~]$
我也尝试将反斜杠转义无济于事。
[Michael@devserver ~]$ grep -rnw '/var/www/concrete5.7.5.9/' -e "Concrete\\Core\\Block\\BlockController"
[Michael@devserver ~]$
也尝试单引号无济于事。
[Michael@devserver ~]$ grep -rnw '/var/www/concrete5.7.5.9/' -e 'Concrete\Core\Block\BlockController'
[Michael@devserver ~]$
如何在Linux上查找包含特定文本并包含反斜杠的所有文件?
使用单引号和转义反斜杠。
grep -rnw '/var/www/concrete5.7.5.9/' -e'Concrete\\Core\\Block\\BlockController'
使用单引号。
grep -rnw '/var/www/concrete5.7.5.9/' -e 'Concrete\Core\Block\BlockController'
Grep具有-F
选项,可以按字面意义而不是正则表达式来解释模式。 例如:
$ cat infile
use \Concrete\Core\Block\BlockController;
class Controller extends BlockController
$ grep 'Concrete\Core\Block\BlockController' infile # No match!
$ grep -F 'Concrete\Core\Block\BlockController' infile # Matches!
use \Concrete\Core\Block\BlockController;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.