パイプの出力を配列に保存する方法

パイプの出力を配列に保存する方法

配列に入れる必要があるデータを取得するシナリオがあります。 echoを使用してデータを配列に配置したら、印刷する必要があります。

v=`cat $FILE | rev | cut -d'|' -f4- | rev | cut -d'|' -f2- | sed 's/|/ /g'`

出力は以下を提供します。

123.23 3453.234

この出力は「arraydemo」配列に影響します。

mapfile -t arraydemo < echo "$v"

何も印刷しないと、echo arraydemo次のエラーが表示されます。 echo:そのファイルまたはディレクトリはありません

echo "${arraydemo[@]}"

これは、データの印刷方法ではなく、スクリプトの実行時の出力です。 echo "${arraydemo[@]}"

+ FILE=demo.txt
++ cat demo.txt
++ rev
++ cut '-d|' -f4-
++ rev
++ cut '-d|' -f2-
++ sed 's/|/ /g'
+ var='16.84 15.24'
+ mapfile -t arraydemo

echo ''

ベストアンサー1

$ a="1234 5678"

$ mapfile -t arraydemo < <(echo "${a}")

$ echo "${arraydemo[@]}"
1234 5678

おすすめ記事