次の表があります。
san0 san1 san2 san3 san4 san5 san6 san7
6.36% 6.24% 6.24% 6.24% 6.33% 6.25% 6.25% 6.25%
値をシェル変数にインポートするには、このテーブルを解析する必要があります。つまり、最初の行のラベルは、2番目の行の対応するフィールドの値を使用してシェル変数にする必要があります。
したがって、変数は、willなどにsan0
なります。6.36%
san4
6.33%
私は多くのツールを試してみましたが、時々人々が詰まることがあります。誰でも助けることができますか?
ベストアンサー1
#!/bin/bash
#first you take the input of the file, in two separate strings
IFS=$'\n'
{
read line1
read line2
} < yourfile
#then you create arrays out of the strings, by modifying IFS to
IFS=$'\t'
a=($(echo "$line1"))
b=($(echo "$line2"))
if [[ ${#a[@]} -eq ${#b[@]} ]] #if you want no var to be empty
then
num=0
while [[ -n "${a[$num]}" ]]
do
declare -g "$(echo ${a[$num]})"="$(echo ${b[$num]})"
((num++))
done
fi
これで、変数 ${!a[0]} を名前または間接的に呼び出すことができます。