我有一個包含像幾句話的文件:通行證從文件的多個參數while循環殼牌
server1 location1
server2 location2
我需要在一個while循環通過這些。
我們如何將它們分配給兩個單獨的變量?像這樣的東西可能是
while read server,location
do
echo $server is in $location
done <file
我能夠使用1變量非常好,但無法弄清楚這一個。
任何幫助,將不勝感激。
我有一個包含像幾句話的文件:通行證從文件的多個參數while循環殼牌
server1 location1
server2 location2
我需要在一個while循環通過這些。
我們如何將它們分配給兩個單獨的變量?像這樣的東西可能是
while read server,location
do
echo $server is in $location
done <file
我能夠使用1變量非常好,但無法弄清楚這一個。
任何幫助,將不勝感激。
你需要的變量,而不是逗號之間使用空間:
while read -r server location
do
echo "${server}" is in "${location}"
done <file
注意,第一個字被讀入server
和「一切」將進入location
。所以,如果你的文件恰好包含兩個以上的話,那麼你可能想用一個虛擬變量忽略其它:
while read -r server location dummy
do
echo "${server}" is in "${location}"
done <file
我有點生疏shell腳本,所以我懷疑,這是最好的這樣,但你可以做這樣的:
set $(cat file)
while [ $# -gt 0 ]
do
echo $1 is in $2
shift 2
done
另一種方法是使用awk
:
awk '{for (i=1; i<NF; i+=2) printf "%s is in %s\n", $i, $(i+1);}' file
您是否可以用解析整個文件重新'廣告'沒有放棄其餘的線?我認爲這就是OP所追求的。 – mhawke
我編輯了這篇文章以清楚說明(你可以從編輯歷史中看到OP意味着要問什麼)。它看起來像你在說什麼。但這是由於問題的格式不好造成的。抱歉! –
我可能會錯過某些內容,但在編輯歷史記錄中看不到這些內容。我看到_you_編輯過的問題不是OP? – mhawke