linux: saída de comando 'host' mais curta

2

Estou usando o dns para gerenciar meus hosts virtuais. Para fazer isso eu consultar meu servidor de nomes com o comando do host para certos valores é necessário. Por exemplo:

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

mas só preciso de 1026 como resposta sem o chatter. Atualmente estou usando o sed para removê-lo assim:

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

mas isso parece um pouco "instável" e eu me pergunto se não há algum comando que me daria a saída simples em primeiro lugar?

    
por Scheintod 10.10.2013 / 10:56

2 respostas

8

Use dig(1) com o +short flag:

$ 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"

Se você quiser remover as aspas, basta filtrar a saída por meio de 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
    
por 10.10.2013 / 11:03
1

Minha primeira escolha seria cavar como dawud apontado. Se você ficar com 'host', você pode substituir o sed por:

cut -d \" -f 2
    
por 10.10.2013 / 11:54