使用 grep -rin 和带有下划线的字符串值

使用 grep -rin 和带有下划线的字符串值

我正在尝试运行该命令。

grep -rin "wp_get_attachment_url" *

但是字符串值中的下划线 (_) 似乎会搞乱 grep 命令。如何搜索带有下划线的字符串值?

答案1

如果wp_get_attachment_url实际上是一个必须按字面解释的 URL,请使用单引号来防止 shell 解释字符。此外,使用选项-Fgrep避免它将模式解释为正则表达式。

http://example.com/?id=1解释为正则表达式将匹配或http://example.comid=1http://example.com/id=1但不匹配http://example.com/?id=1

命令变为:

grep -rinF 'http://example.com/?id=1' *

如果模式包含',则使用'\''来转义它:

grep -rinF 'mornin'\'' all' *

提示:*匹配当前目录中所有非隐藏文件。如果您还想匹配点文件,只需递归地 grep 当前目录即可(-r):

grep -rinF 'search term' .

相关内容