次の変数のデータを動的配列として扱う際に問題があります。
variable_1='A|B|C|D' -> dynamic_array=(A B C D)
sedコマンドを使用して '|'を空白に置き換え、データをDynamic_arrayに渡す方法を試しました。
1行のコードでこれを行う方法はありますか?
ベストアンサー1
変更する必要はありませんIFS
。バッシュ4.4からスタート:
readarray -td '|' arr < <(printf '%s' "$var")
$ var='A|B|C|D'
$ readarray -td '|' arr < <(printf '%s' "$var")
$ echo "${arr[0]}"; echo "${arr[3]}"
A
D
バラよりhelp readarray
説明する。
注:以前の提案(readarray -td '|' arr <<< "$var"
)は短いですが、Freddyが指摘したように、最後の配列要素に偽の改行文字を挿入します。