Shell - 检查文件是否包含

时间:2017-04-03 12:04:17

标签: shell text

我已经在字符串

中声明了一个带有两个换行符的字符串
  

somestring = $'\ n ##### Branch FREEZE启用/禁用\ n发布:'

我有一个带有文本的$文件,如下所示

###############################

##### Branch RELEASE enable/disable
Release: disable

##### Branch FREEZE enable/disable
Freeze: disable

##### Mail list #####

我试图找出,如果内部有一个字符串,两个新行都带有命令

  

如果grep -q“$ somestring”“$ file”;然后   echo“找到了字符串”

但是当字符串中有换行符时,结果总是正面的。

如何使用内联换行符使其正常工作?

1 个答案:

答案 0 :(得分:0)

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

尝试使用pcregrep而不是常规的grep:

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

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