ファイルから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]}"