如何对单引号执行grep regex搜索?
如何使用grep搜索像如何对单引号执行grep regex搜索?,regex,bash,grep,pattern-matching,Regex,Bash,Grep,Pattern Matching,如何使用grep搜索像ABC='123'这样的模式 我目前正在使用: grep -rnwi some/path -e "ABC\s*=\s*[\'\"][^\'\"]+[\'\"]" 但这只会找到像ABC=“123”这样的文本。它会遗漏任何使用单引号的实例。我的正则表达式怎么了?您正在使用PCRE。因此,您需要-P标志。因此,请使用以下命令: grep -rnwi some/path -P "ABC\s*=\s*[\'\"][^\'\"]+[\'\"]" 字符类中的单引号不需要\\。因此,您
ABC='123'
这样的模式
我目前正在使用:
grep -rnwi some/path -e "ABC\s*=\s*[\'\"][^\'\"]+[\'\"]"
但这只会找到像
ABC=“123”
这样的文本。它会遗漏任何使用单引号的实例。我的正则表达式怎么了?您正在使用PCRE。因此,您需要-P
标志。因此,请使用以下命令:
grep -rnwi some/path -P "ABC\s*=\s*[\'\"][^\'\"]+[\'\"]"
字符类中的单引号不需要\\
。因此,您的正则表达式也可以写成:
"ABC\s*=\s*['\"][^'\"]+['\"]"
输入文件:
ABC="123"
ABC='123'
使用PCRE运行grep
:
grep -P "ABC\s*=\s*['\"][^'\"]+['\"]" input.txt
输出:
ABC="123"
ABC='123'
对于BRE,您需要使用
\+
或使用当前正则表达式和-E
选项来使用ERE@Sundeep+
根本不在BRE中,但GNU grep BRE支持将其作为扩展。@BenjaminW。由于OP使用了-r
我假定GNU是grep