我可能错过了一些非常明显的东西,但我有一个xml文件,我需要grep来查看它是否包含这个:
<phone>null</phone>
要么
的 <phone></phone>
在任何情况下,以及任何额外的空格(在标签之间)。
所以,我的非工作解决方案是:
grep -i "\<phone\>\s*(null)?\s*\</phone\>" ./myfile.xml
但是返回为空(即使我正在使用的文件有此节点)。 我在俯瞰什么?
TIA
答案 0 :(得分:1)
啊!发现它...我会自己回答,以防其他人发现它在将来有用......添加 -P 开关即......
grep -i -P "\<phone\>\s*(null)?\s*\</phone\>" ./myfile.xml
...调用它使用perl样式正则表达式(这就是我正在使用的)并产生所需的结果。
答案 1 :(得分:0)
kent$ echo "<phone>null</phone> or <phone></phone>foo bar"|grep -iE "(<phone>null</phone>|<phone></phone>)"
<phone>null</phone> or <phone></phone>foo bar