![awk의 출력을 null 값이 있는 빈 문자열 배열에 저장하는 방법은 무엇입니까? [복사]](https://linux55.com/image/102800/awk%EC%9D%98%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20null%20%EA%B0%92%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%EB%B9%88%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EB%B0%B0%EC%97%B4%EC%97%90%20%EC%A0%80%EC%9E%A5%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
나는 변이가 가능한 동물을 가지고 있습니다.
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"))