awkの出力をnull値を持つ空の文字列配列に保存する方法は? [コピー]

awkの出力をnull値を持つ空の文字列配列に保存する方法は? [コピー]

私は変異可能な動物を持っています。

animals=lion*tiger*elephant**cat***dog

区切り記号*で分割して配列に保存したいと思います。

 Expected:

 animals[0]="lion"
 animals[1]="tiger"
 animals[2]="elephant"
 animals[3]=""
 animals[4]="cat"
 animals[5]=""
 animals[6]=""
 animals[7]="dog"

awkコマンドを使用しますが、値なしで空の文字列を保存する方法がわかりません。

echo "$(awk -F* '{ for (i = 1; i <= 8; i++) print $i }' <<< "$animals")"

結果:

lion
tiger
elephant

cat


dog

バルク:

Array=($(awk -F* '{ for (i = 1; i <= 8; i++) print $i }' <<< "$animals")) 
# Null values get neglected

ベストアンサー1

値がない場合をnullに置き換え、

Array=($(awk -F* '{ for (i = 2; i <= 10; i++) { if ($i==""){print "null"} else {print $i} }  }' <<< "$animals"))

おすすめ記事