只有当一行以@符号开始并且包含单个“A”字符时,我才需要匹配它。尝试使用grep -P方法。
区域文件片段:
@ IN SOA some.bogus.com hostmaster.bogus.com. (
@ IN A 12.34.56.789
IN A 012.345.678.9
@ 1800 IN AAAA 789237:mou68:028n:0000:8afn:
@ IN NS ns500.mydummy.server.
@ IN TXT "v=spf1 mx ~all"
字符串
使用grep -P "(^|\s)\K@(?=\s|$)" myzonefile.com
可以很好地得到带有@符号的行,但是我如何修改它来得到带有@符号和单个'A'字符的行?
这个grep -P '(?=.*@)(?=.*A)' myzonefile.com
得到了第二行,这是正确的,但也得到了SOA行,这是我不想要的。
这个grep -E '\b[A]\s' myzonefile.com
只获取带有单个'A'字符的所有行,但是我无法包含一个AND操作来匹配@符号,而不需要管道连接到另一个grep。所以没得选。
我应该使用sed还是awk来做这个,更合适吗?
2条答案
按热度按时间sf6xfgos1#
字符串
ehxuflar2#
你是说像这样吗?