我想将grep的一个输出合并到这两个独立的结果中。我应该使用什么reg表达式匹配?
grep "NS" file.txt
ftx.domainname.example.com 3600 IN NS ftxns01.domainname.example.comgrep "^sdfns[0-9]" file.txt
ftxns001-oob.domainname.example.com. 86400 IN A 192.168.30.2
ftxns001.domainname.example.com. 86400 IN A 192.168.2.2我可以包括什么来排除"-oob“
对我来说,理想的最终效果是:
ftx.domainname.example.com 3600 IN NS ftxns01.domainname.example.com
ftxns001.domainname.example.com. 86400 IN A 192.168.2.2我想,将前两个结果连在一起就能得到接近的结果,但是在尝试grep [^oob]或[^-oob]时,不能排除名字中有“grep [^oob]”的主机名。
发布于 2022-11-15 21:00:21
可以使用grep -v排除与模式匹配的行。
grep "^sdfns[0-9]" file.txt | grep -v -e '-oob' 或者,如果您有grep,您可以使用-P获取PCRE,然后使用负前瞻性。
grep '^sdfns\d+(?!-oob)' file.txt[^-oob]不起作用,因为它与不在列表中的单个字符匹配,并不是为了排除整个字符串。它与[-oob]相反,它与集合中的单个字符相匹配。
https://stackoverflow.com/questions/74452037
复制相似问题