Я использую DNS для управления своими виртуальными хостами. Для этого я запрашиваю свой сервер имен с помощью команды host для определенных значений. Например:
> host -t txt mycl1.vz
mycl1.vz.myserver.de descriptive text "1026"
но мне нужно только 1026
как ответ без болтовни. В настоящее время я использую sed, чтобы удалить его, например:
| sed -e 's/.*descriptive text "\(.*\)"/\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
Мой первый выбор был бы копать, как указал Давуд. Если вы придерживаетесь host, вы можете заменить sed на:
cut -d \" -f 2