この sed 式内の変数を展開するにはどうすればよいですか?

この sed 式内の変数を展開するにはどうすればよいですか?

次のようなテキスト ファイルがあります。

melon = [2 2 4 5];
apple = [3 6 4 4];
lemon = [1 5 4 8];

そして、名前付き変数を bash 配列に読み込む関数を作りたいです。これが私が思いついたものですが、変数が$FruitToParse展開されないので機能しません。

#!/bin/bash
set -e
set -u

function file_to_array {
    local FileToParse=${1}
    local FruitToParse=${2}

    for i in `cat ${FileToParse} | sed -n -e 's/.*${FruitToParse} = \[\(.*\)\];/\1/p'`); do
        echo ${i}
    done    
}

file_to_array fruits.txt apple

答え1

sed では一重引用符ではなく二重引用符を使用します。

$ bob="cool"; echo "bob is sad" | sed "s/sad/$bob/"
bob is cool

関連情報