我需要将文件中的单词存储在不同的变量中。例如,我有一个test.txt
包含以下内容的文件:
uname : null empty amarjeet sharma
ver : null 1.2 empty 1.3 1.4
txn : null 123 124 empty 125
需要的是将冒号前的单词存储在一个变量中,并将其保留在每行的数组中。
示例:uname
存储在 var 中,而 ramaining 存储在value[]
数组中
var = uname
value[] ={null, empty, amarjeet, sharma}
var1 = ver
value1[] = {null, 1.2, empty, 1.3, 1.4}
etc…
答案1
尝试这个:
declare -A hash # create associative array
declare -a array # create array
# first part: read file to associative array hash
c=0
while IFS=" :" read hash[$c,0] hash[$c,1]; do
((c++))
done < filename
# second part: print hash and array
for ((i=0;i<$c;i++)); do
# create array from hash with part right from :
array=(${hash[$i,1]})
echo "${hash[$i,0]} -> ${array[@]}"
done
输出:
uname -> null 空 amarjeet sharma ver -> null 1.2 空 1.3 1.4 txn -> 空 123 124 空 125