繁体   English   中英

将一行转换为数组并将数组元素打印为bash中的变量

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM