外壳 - 检查文件是否包含内部带有换行符的字符串



>我已经声明了一个字符串,字符串内有两个换行符

somestring=$'##### 分支冻结启用/禁用发布:'

我有一个$file里面有这样的文字

###############################
##### Branch RELEASE enable/disable
Release: disable
##### Branch FREEZE enable/disable
Freeze: disable
##### Mail list #####

我试图弄清楚,如果里面有一个字符串,两个换行符都有一个命令

如果 grep -q "$somestring" "$file";则 回声"找到字符串">

但是当字符串内部有一个换行符时,结果总是积极的。

如何使其在内部换行符中正确工作?

grep 模式与单个行匹配,因此模式无法匹配输入中找到的换行符。

尝试 pcregrep 而不是常规的 grep:

pcregrep -M "pattern1.*n.*pattern2" filename

-M 选项允许它跨多行匹配,因此您可以将换行符搜索为 。

最新更新