을 사용하여 파일을 구문 분석했습니다 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
.