Grep 文件中包含空格的行

Grep 文件中包含空格的行

我有包含记录的文件

qwe.google.com IN A 1.1.1.1
qwe.google.com   IN {uneven-space} A{space}1.1.1.1
qwe.google.com  IN     CNAME      asd.google.com

我需要 grep 所有包含 的行IN A,因为它之间包含不均匀的空格,我无法这样做。

答案1

您可以使用

grep -E "IN[[:blank:]]+A" file
  • [[:blank:]]匹配空格和制表符,类似于[ \t]

答案2

您可以使用

grep -E "IN +A" file

将匹配(通过扩展正则表达式IN)和之间有一个或多个空格A

IN如果和之间可以有其他形式的空格(即制表符)A,则可能需要使用字符列表或字符类而不是简单的空间,请参见这个答案例如。

答案3

awk '$2 == "IN" && $3 == "A"'

可能更接近您想要的(在该输出中查找互联网 A 记录)。

grep

grep -E '[[:blank:]]IN[[:blank:]]+A[[:blank:]]'

会比仅仅更好

grep -E 'IN[[:blank:]]+A'

它可以匹配如下行:

example.com IN TXT“v=spf1 包括:示例。在一个二”

例如。

无论如何,这两个grep命令都会匹配:

example.com IN TXT“废话在一个哎呀”

相关内容