linux: l'output di command "host" più corto

Sto utilizzando dns per gestire i miei host virtuali. Per fare questo, ho interrogato il mio nameserver con il command host per per certi valori è necessario. Per esempio:

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

ma ho solo bisogno di 1026 come risposta senza il chiacchiericcio. Attualmente sto usando sed per rimuoverlo come:

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

ma questo sembra un po '"instabile" e mi chiedo se non c'è un command che mi dà la prima output normale?

2 Solutions collect form web for “linux: l'output di command "host" più corto”

Usate dig(1) con la bandiera +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" 

Se si desidera rimuovere le virgolette, basta filtrare l'output attraverso 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 

La mia prima scelta sarebbe stata scavata, come sottolineato dawud. Se ti attacchi con 'host', puoi sostituire sed con:

 cut -d \" -f 2 
Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.