テーブルのキーと値のペアを解析してシェル変数を設定する

テーブルのキーと値のペアを解析してシェル変数を設定する

次の表があります。

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%san46.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]} を名前または間接的に呼び出すことができます。

おすすめ記事