我是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
答案 0 :(得分:1)
将每个值存储在数组中非常容易。这是一个例子:
while read -r -a line
do
echo "${line[0]}"
echo "${line[1]}"
echo "${line[2]}"
done < $filename
-a line将输入行拆分为单词(默认为空格分隔),并将结果存储在line
数组中。
阅读男人的片段:
-a每个名称都是一个索引数组变量(参见上面的数组)。
你不需要'-r'选项。它基本上使读取处理\在输入中没有什么特别之处。
答案 1 :(得分:0)
# 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