![n번째 행을 읽고 배열로 분할](https://linux55.com/image/210438/n%EB%B2%88%EC%A7%B8%20%ED%96%89%EC%9D%84%20%EC%9D%BD%EA%B3%A0%20%EB%B0%B0%EC%97%B4%EB%A1%9C%20%EB%B6%84%ED%95%A0.png)
파일에서 n번째 줄을 읽고 구분 기호를 기준으로 배열로 분할해 봅니다.
HEAD_START=4
IFS='|' read -r -a headers < sed "${HEAD_START}q;d" "/FILE_UPLOADS/Checklist-Relationship (4).txt"
위에 주어진"sed: cannot open [No such file or directory]"
하지만 sed "${HEAD_START}q;d" "/FILE_UPLOADS/Checklist-Relationship (4).txt"
프롬프트에서 실행하면 잘 작동합니다.
답변1
read -r -a headers < sed ...
"읽기"라는 파일 을 열려고 합니다 sed
.
Bash에서 sed
명령으로 실행하고 표준 입력 스트림에서 출력을 사용할 수 있도록 하려면 다음을 사용할 수 있습니다.프로세스 교체:
IFS='|' read -r -a headers < <(sed "${HEAD_START}q;d" "/FILE_UPLOADS/Checklist-Relationship (4).txt")
답변2
파일이 너무 크지 않으면 sed를 건너뜁니다.
mapfile -t lines < filename
IFS='|' read -ra headers <<< "${lines[HEAD_START - 1]}"