파일 입력 읽기 및 읽기 라인을 배열로 변환

파일 입력 읽기 및 읽기 라인을 배열로 변환

다음 코드가 있습니다.Text read from file: "E" "01" "Adv - Initial" "07/11/2017"

다음과 같은 배열에 저장하고 싶습니다. array[0] = "E" array[1] = "01" array[2] = "Adv - Initial" array[3] = "07/11/2017"

나는 시도했다: itemData=( "$line" )while 루프에서. 하지만 원하는 결과를 얻지 못합니다.

답변1

문제 중 하나는 , , 가 "Adv - Initial"깨질 것이라는 점입니다. 변화를 가지고 놀아야 합니다.Adv-InitialIFS

#/bin/bash

savIFS=$IFS
IFS=\"
array=($line)
IFS=$savIFS

echo "${array[1]}"
echo "${array[3]}"
echo "${array[5]}"
echo "${array[7]}"

답변2

당신이 원하는추가의현재 배열. 이를 달성하려면 다음을 수행하십시오.

declare -a array

배열을 선언하고

array+=("$line")

배열에 요소를 추가합니다.

배쉬 참조 매뉴얼:

쉘 변수 또는 배열 인덱스(배열 참조)에 값을 할당하는 할당 문의 컨텍스트에서 "+=" 연산자를 사용하여 변수의 이전 값에 추가하거나 추가할 수 있습니다.

관련 정보