如何使用grep对ABC='123'
?
我目前正在使用:
grep -rnwi some/path -e "ABC\s*=\s*[\'\"][^\'\"]+[\'\"]"
但这只会找到ABC="123"
这样的文字。它错过了使用单引号的任何实例。我的正则表达式有什么问题?
答案 0 :(得分:1)
您正在使用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'