bashで連想配列を動的に作成する

マイクチャンバー

$OUTPUT次の名前と値のペアを含む変数()があります。

member_id=4611686018429783292
platform=Xbox
platform_id=1
character_id=2305843009264966985
period_dt=2020-11-25 20:31:14.923158 UTC
mode=all Crucible modes
mode_id=5
activities_entered=18
activities_won=10
activities_lost=8
assists=103
kills=233
average_kill_distance=15.729613
total_kill_distance=3665
seconds_played=8535
deaths=118
average_lifespan=71.72269
total_lifespan=8463.277
opponents_defeated=336
efficiency=2.8474576
kills_deaths_ratio=1.9745762
kills_deaths_assists=2.411017
suicides=1
precision_kills=76
best_single_game_kills=-1

各行は\n。で終わります。

それらをループして連想配列に解析し、変数名で配列の値にアクセスしたいと思います。

while read line
do
    key=${line%%=*}
    value=${line#*=}

    echo $key=$value
    data[$key]="$value"

done < <(echo "$OUTPUT")

#this always prints the last value
echo ${data['seconds_played']}

これは機能しているようです。つまりkey/value、正しい値を出力しますが、配列から値を取得しようとすると、常に最後の値(この場合-1が返されます

明らかな何かが欠けているような気がしますが、数時間頭をぶつけてきました。

更新:私の特定の問題は、bash連想配列をサポートしないバージョン(OSXでは3.2.57)を実行していることです以下に正解を記します。

markp-fused

dataを設定する前に、連想配列として宣言しみてください。例:

$ typeset -A data                   # declare as an associative array
$ while read line
do
    key=${line%%=*}
    value=${line#*=}

    echo $key=$value
    data[$key]="$value"

done <<< "${OUTPUT}"

$ typeset -p data
declare -A data=([mode]="all Crucible modes" [period_dt]="2020-11-25 20:31:14.923158 UTC" [deaths]="118" [best_single_game_kills]="-1" [efficiency]="2.8474576" [precision_kills]="76" [activities_entered]="18" [seconds_played]="8535" [total_lifespan]="8463.277" [average_lifespan]="71.72269" [character_id]="2305843009264966985" [kills]="233" [activities_won]="10" [average_kill_distance]="15.729613" [activities_lost]="8" [mode_id]="5" [assists]="103" [suicides]="1" [total_kill_distance]="3665" [platform]="Xbox" [kills_deaths_ratio]="1.9745762" [platform_id]="1" [kills_deaths_assists]="2.411017" [opponents_defeated]="336" [member_id]="4611686018429783292" )

$ echo "${data['seconds_played']}"
8535

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JavaScriptの連想配列で動的にキーを作成する

分類Dev

Bashで動的連想配列に値を割り当てる方法は?

分類Dev

Rustで連想配列を作成する

分類Dev

jqueryで連想配列を作成する

分類Dev

PHPで連想配列の列名に行を作成する方法

分類Dev

jqueryで動的連想配列を作成するにはどうすればよいですか?

分類Dev

別の連想配列に基づいて連想配列を作成する

分類Dev

別の連想配列に基づいて連想配列を作成する

分類Dev

PHPで連想配列を別の連想配列に追加する

分類Dev

PHPの単純な配列から動的連想配列を作成する

分類Dev

連想配列の内容を bash でファイルに出力する

分類Dev

Yii2で連想配列を作成してJSONに変換する方法は?

分類Dev

bashで連想配列にアクセスする方法

分類Dev

連想配列を使用したforループでPHPが奇妙に動作する

分類Dev

Bashで連想配列を反復処理する方法

分類Dev

CMakeでBash連想配列を使用する

分類Dev

yamlで連想配列のリストを作成する方法

分類Dev

PHPで空の連想配列を作成する方法

分類Dev

phpmysqlで多次元連想配列を作成する

分類Dev

連想配列内で要素を移動する

分類Dev

連想配列のキーから配列を作成するにはどうすればよいですか?

分類Dev

PHPで他の2つの連想配列を使用して新しい連想配列を作成するにはどうすればよいですか?

分類Dev

値の配列を使用してPascalで連想配列を作成する方法

分類Dev

連想配列をbashし、変数を動的に割り当てます

分類Dev

Foreachで連想配列を作成し、既存の連想配列に挿入します

分類Dev

awkで連想配列を表示する

分類Dev

PHPで文字列を連想配列に変換する方法

分類Dev

phpで文字列を連想配列に変換する方法は?

分類Dev

PHPで文字列を連想配列に変換する

Related 関連記事

  1. 1

    JavaScriptの連想配列で動的にキーを作成する

  2. 2

    Bashで動的連想配列に値を割り当てる方法は?

  3. 3

    Rustで連想配列を作成する

  4. 4

    jqueryで連想配列を作成する

  5. 5

    PHPで連想配列の列名に行を作成する方法

  6. 6

    jqueryで動的連想配列を作成するにはどうすればよいですか?

  7. 7

    別の連想配列に基づいて連想配列を作成する

  8. 8

    別の連想配列に基づいて連想配列を作成する

  9. 9

    PHPで連想配列を別の連想配列に追加する

  10. 10

    PHPの単純な配列から動的連想配列を作成する

  11. 11

    連想配列の内容を bash でファイルに出力する

  12. 12

    Yii2で連想配列を作成してJSONに変換する方法は?

  13. 13

    bashで連想配列にアクセスする方法

  14. 14

    連想配列を使用したforループでPHPが奇妙に動作する

  15. 15

    Bashで連想配列を反復処理する方法

  16. 16

    CMakeでBash連想配列を使用する

  17. 17

    yamlで連想配列のリストを作成する方法

  18. 18

    PHPで空の連想配列を作成する方法

  19. 19

    phpmysqlで多次元連想配列を作成する

  20. 20

    連想配列内で要素を移動する

  21. 21

    連想配列のキーから配列を作成するにはどうすればよいですか?

  22. 22

    PHPで他の2つの連想配列を使用して新しい連想配列を作成するにはどうすればよいですか?

  23. 23

    値の配列を使用してPascalで連想配列を作成する方法

  24. 24

    連想配列をbashし、変数を動的に割り当てます

  25. 25

    Foreachで連想配列を作成し、既存の連想配列に挿入します

  26. 26

    awkで連想配列を表示する

  27. 27

    PHPで文字列を連想配列に変換する方法

  28. 28

    phpで文字列を連想配列に変換する方法は?

  29. 29

    PHPで文字列を連想配列に変換する

ホットタグ

アーカイブ