다음과 같은 데이터가 포함된 파일이 있습니다.
UserName
UserName
UserName
각 데이터 조각은 개행 문자로 구분됩니다.
이 데이터를 문자열 배열로 변환하여 변수에 저장해야 합니다.
bash 또는 쉘 실행을 통해 이를 어떻게 달성할 수 있습니까?
답변1
그리고 mapfile
:
$ mapfile -t array < yourfile
$ declare -p array # print array content
declare -a array=([0]="UserName" [1]="UserName" [2]="UserName")
답변2
$ set -f # disable globbing
$ arr=($(<file.csv))
$ set +f # enable globbing
$ declare -p arr # print array content
declare -a arr=([0]="UserName" [1]="UserName" [2]="UserName")
arr=(…)
배열 생성$(<file.csv)
파일 읽기file.csv
(예$(cat file.csv)
: )
*
파일을 읽기 전에 와일드카드를 비활성화하여 또는 또는 특수 패턴과 같은 문자로 인한 사용자 이름 확장 ?
(경로 이름 확장) 을 방지해야 합니다.
요소는 개행, 공백 또는 탭( $IFS
수정되지 않은 것으로 가정)에서 분할되고 잘립니다.
답변3
i=0
while IFS= read -r line
do
var[i++]="$line"
done < filename
여기서 var 배열 변수는 모든 이름을 저장합니다. 다음을 통해 액세스할 수 있습니다.
printf '%s\n' "${var[0]}"
printf '%s\n' "${var[1]}"
...
...