cat의 결과를 다른 인덱스 값으로 저장

cat의 결과를 다른 인덱스 값으로 저장

을 사용하여 파일을 구문 분석했습니다 cat. 이제 결과를 배열에 저장하고 싶습니다.

var1=$(cat abc.txt | grep .........)

var1은 다음과 같습니다

33 23 51 11 16 43 5 50 4 2 12 29 32 28 47 41 7 20 38 45 49 26 22 10 44 9 19 27 46

1. 각 값을 배열 변수로 저장하고 싶은데 이렇게 하면 '의 모든 결과가 cat인덱스 0에 저장됩니다.var1

각 값을 다른 인덱스로 어떻게 저장할 수 있나요?

답변1

Bash에는 readarray배열에 값을 저장하는 내장 함수가 있습니다.

readarray arr < <(grep "pattern" abc.txt)

그러면 arr명령에 의해 제공된 값으로 호출되는 배열이 생성됩니다 grep "pattern" abc.txt(여러 줄에 나타나면 readarray배열에 추가됩니다).

echo ${arr[0]}
33
$ echo ${arr[10]}
12
$ echo ${arr[*]}
33 23 51 11 16 43 5 50 4 2 12 29 32 28 47 41 7 20 38 45 49 26 22 10 44 9 19 27 46

참고: grep도 파일을 읽을 수 있으므로 cat file | grep ...줄여서 사용할 수 있습니다 grep ... file.

관련 정보