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