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

관련 정보