簡體   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