如何对单引号执行grep regex搜索?

如何对单引号执行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*[\'\"][^\'\"]+[\'\"]" 字符类中的单引号不需要\\。因此,您

如何使用grep搜索像
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