Como armazenar saída de awk para array com string vazia em valores nulos? [duplicado]

0

Eu tenho animais variáveis.

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

Eu só quero dividir pelo delimitador * e armazená-lo em uma matriz.

 Expected:

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

Eu usei o comando awk, mas não sei como armazenar uma string vazia sem valor.

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

Resultado:

lion
tiger
elephant

cat


dog

Matriz:

Array=($(awk -F* '{ for (i = 1; i <= 8; i++) print $i }' <<< "$animals")) 
# Null values get neglected
    
por rajagopalx 10.01.2017 / 20:58

1 resposta

0

eu substituí como null por nenhum valor,

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