[英]How to read in variables from multi-line file?
我正在嘗試從多行且每行具有多個變量的文件中讀取。 有四個變量:項目,價格,max_qty和min_qty。 該文件如下所示:
item price
min_qty max_qty
我努力了:
while IFS=' ' read -r first second third fourth; do
echo "$first $second $third $fourth
done
這是行不通的。 我希望輸出為:
item price min_qty max_qty
我還考慮過用空格替換新行,然后從該行讀取內容。 我不想實際更改文件。
read
兩次:
while read -r first second && read -r third fourth; do
echo "$first $second $third $fourth"
done < file
如果確實是“文件看起來像這樣”(兩行,每行兩個值,而不是像這樣具有多對行的更大文件),則可以通過使用-d
選項進行一次read
來做到這一點將行定界符設置為空:
read -r -d '' first second third fourth <file
echo "$first $second $third $fourth"
errexit
或ERR
陷阱,則在執行read
后,程序將立即安靜地退出。 有關避免特定命令的方法,請參見Bash忽略特定命令的錯誤 。 IFS
的默認值(space + tab + newline)。 如果可以在程序的其他位置將IFS設置為其他內容,則使用IFS=$' \\t\\n' read -r -d '' ...
顯式設置它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.