读取第 n 行并拆分为数组

读取第 n 行并拆分为数组

尝试从文件中读取第 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]}"

相关内容