如何将 awk 的输出存储到带有空值的空字符串的数组?

如何将 awk 的输出存储到带有空值的空字符串的数组?

我有一个可变的动物。

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"))

相关内容