如果存在某个特定单词,如何输出它?

如果存在某个特定单词,如何输出它?

我正在编写一个简单的脚本,其中我转向true文件中false是否true存在或反之亦然,如果false文件中存在,详细信息这里。现在我想输出,更改后的值是什么,即如果我更改falsetrue它应该输出true。现在我使用两个语句 -

grep "<active>false" settings.xml

grep "<active>true" settings.xml

但是它会打印<active>输出(如预期的那样),但是有没有更好的方法来做到这一点?

附注-我使用<active>truein 是grep因为我的正则表达式是类型<active>([a-z]*)</active>

答案1

如果你使用 GNU grep,你可以使用Perl 正则表达式并进行积极的后视断言:

grep -Po "(?<=<active>)(false|true)" settings.xml

这将仅输出falsetrue<active>当它后面跟着true或时,将被匹配false,但它不会包含在输出中。

但理想情况下,你应该使用基于 XML 的解析器,如uzsolt 的评论

相关内容