Bash 脚本将文件中的单词存储在不同的变量中

Bash 脚本将文件中的单词存储在不同的变量中

我需要将文件中的单词存储在不同的变量中。例如,我有一个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

相关内容