linux:更短的“host”命令输出

linux:更短的“host”命令输出

我使用 dns 来管理我的虚拟主机。为此,我使用 host 命令查询我的名称服务器以获取我需要的某些值。例如:

> host -t txt mycl1.vz
mycl1.vz.myserver.de descriptive text "1026"

但我只需要1026没有闲聊的答案。目前我正在使用 sed 将其删除,如下所示:

| sed -e 's/.*descriptive text "\(.*\)"/\1/'

但这似乎有点“不稳定”,我想知道是否没有任何命令可以首先给我简单的输出?

答案1

使用dig(1)使用+short标志来代替:

$ host -t txt google.com
google.com descriptive text "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"

$ dig -t txt google.com +short
"v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"

如果您想删除引号,只需通过以下方式过滤输出sed

$ dig -t txt google.com +short | sed 's/"//g'
v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all

答案2

正如 dawud 指出的那样,我的第一选择是 dig。如果您坚持使用“host”,则可以将 sed 替换为:

cut -d \" -f 2

相关内容