簡體   English   中英

如何查找包含特定文本(包括反斜杠)的所有文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM