我有一个文件,在任何一种组合中都可能包含以下代码块。我需要检查文件中是否存在“导入遥测”。
导入
遥测{ 前缀tm; }
我的代码:
#!/bin/sh
if grep -Eq "import\s+telemetry" "./xyz.yang";
then
echo "This is a telemetry yang"
else
echo "This is a normal yang"
fi
上面的方法适用于1和2,但不适用于3。
我尝试了以下操作,但是它很贪心,并且也会匹配“ import blah blah .. telemetry”。
if awk '/import/,/telemetry/' "./xyz.yang";
有什么建议吗?
我的解决方案:
#!/bin/sh
if grep -Pzq 'import[ \n\r\t]+telemetry' './xyz.yang';
then
echo "This is a telemetry yang"
else
echo "This is a normal yang"
fi
答案 0 :(得分:-1)
向grep添加-z
标志,它将起作用。
#!/bin/sh
if grep -Eqz "import\s+telemetry" "./xyz.yang";
then
echo "This is a telemetry yang"
else
echo "This is a normal yang"
fi