[英]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.