2013-06-04 48 views
0

這似乎應該很簡單,但一直試圖找到一種方法來短語搜索來回答它。有效地將多個列提取到變量中

很簡單,我有一個文件結構爲三列,包括名稱,路徑和模式。雖然循環線我想提取每個這些成其自己的變量使用。

的解決方案,我有當前是(原諒拼寫錯誤):

while read line 
do 
    name=$(echo "$line" | awk '{print $1}') 
    path=$(echo "$line" | awk '{print $2}') 
    pattern=$(echo "$line" | awk '{print $3}') 
done < "myFile.txt" 

但是這似乎是一個真正低效的方式做到這一點,因爲這意味着每個變量調用awk一次。那麼,有沒有更好的方法來做到這一點?分隔符目前只是一個選項卡,但我可以將其更改爲更容易使用的任何內容。

回答

5
while read name path pattern 
do 
    # Do something 
done < myFile.txt 

如果你想你的分隔符更改到別的東西,像,

while IFS=, read name path pattern 
do 
    # Do something 
done < myFile.txt 
+0

你可以簡單的前綴'read'命令用正確的分隔符,而不是在全球範圍作修改:'而IFS =,讀取名稱路徑模式; do'。 – chepner

+0

果然,更新。 –

+0

**拍拍額頭**一直盯着我的臉!感謝您的快速響應,希望我的問題出現在其他人尋找他們應該已經知道的東西=) – Haravikk

相關問題