尝试从文件中读取第 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
“read”的文件。
在 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]}"