배열을 파일에 저장하고 BASH의 파일에서 배열 로드

배열을 파일에 저장하고 BASH의 파일에서 배열 로드

업데이트가 완료되면 여러 정수 배열을 txt 파일에 저장한 다음 해당 배열을 txt 파일에서 사용 중인 스크립트로 로드할 수 있기를 원합니다.

기본적으로 이러한 배열에는 특정 통계가 포함되며 이를 로드하고 저장하여 스크립트를 실행할 때마다 통계를 업데이트할 수 있기를 원합니다.

Bash에서 이 작업을 수행할 수 있는 방법이 있나요?

편집: 아래 답변의 경우 배열을 파일에 어떻게 쓰시겠습니까?

답변1

한 줄에 하나씩 두 개의 정수 배열을 포함하는 파일이 있다고 가정합니다.

$ cat file
1 20 300
1 2 3 5

이러한 배열은 다음과 같이 읽을 수 있습니다.

{ read -a a1; read -a a2; } <file

다음을 사용하여 올바르게 읽고 있는지 확인할 수 있습니다 declare -p.

$ declare -p a1
declare -a a1='([0]="1" [1]="20" [2]="300")'
$ declare -p a2
declare -a a2='([0]="1" [1]="2" [2]="3" [3]="5")'

배열을 파일에 저장

파일에 저장하는 한 가지 방법은 다음과 같습니다.

$ { echo "${a1[*]}"; echo "${a2[*]}"; } >newfile

생성된 파일은 다음과 같습니다.

$ cat newfile
1 20 300
1 2 3 5

답변2

다음을 사용하여 파일에 배열을 쓸 수 있습니다.

printf "%s\n" "${a1[*]}" "${a2[*]}" > file

이것은 John1024의 답변과 호환됩니다. 행당 하나의 배열을 배치합니다.

관련 정보