[英]convert a line into array and print elements of array as variables in bash
我是Linux的新手,我尝试逐行读取文本文件。 线是数字。 我想将每个行添加到数组中,并将每个数字视为一个变量。 我的试用如下:
txt文件示例:
1976 1 0 0.00 0. 68. 37. 0. 105. 0.14 0.02 4.3 1.1 2.2
我需要的:
将每个数字放入变量中。 例如a = 1976
和b = 1
等...
我的代码:
IFS=$'\n'
for next in `cat $filename`
do
line=$next
echo ${line[0]}
done
结果:
1976 1 0 0.00 0. 68. 37. 0. 105. 0.14 0.02 4.3 1.1 2.2
将每个值存储在数组中非常容易。 这是一个例子:
while read -r -a line
do
echo "${line[0]}"
echo "${line[1]}"
echo "${line[2]}"
done < $filename
-一行将输入行拆分为单词(默认情况下用空格分隔),并将结果存储line
数组中。
阅读者的摘录:
-a每个名称都是一个索引数组变量(请参见上面的数组)。
您不需要'-r'选项。 基本上,将\\视作输入中没有什么特别的内容。
# Add each line to Array
readarray -t aa < $filename
# Put each line into variables using Here String
for l in "${aa[@]}"; do
read a b c <<< $l; # Example using 3 variables, could be as many as on line
# Do whatever has to be done with a, b, c, etc
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.