Linux

linux:更短的“主機”命令輸出

  • December 14, 2021

我正在使用 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

正如 dawud 指出的那樣,我的第一選擇是探勘。如果您堅持使用“主機”,則可以將 sed 替換為:

cut -d \" -f 2

引用自:https://serverfault.com/questions/545070