Como posso expandir a variável dentro dessa expressão sed? [duplicado]

1

Eu tenho um arquivo de texto como este:

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

E eu quero fazer uma função que leia uma variável nomeada em uma matriz bash. Isso é o que eu criei - isso não funciona, já que a variável $FruitToParse não é expandida:

#!/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} = \[\(.*\)\];//p''); do
        echo ${i}
    done    
}

file_to_array fruits.txt apple
    
por Fylke 26.10.2016 / 18:19

1 resposta

3

use aspas duplas no sed ao invés de aspas simples;

$ bob="cool"; echo "bob is sad" | sed "s/sad/$bob/"
bob is cool
    
por 26.10.2016 / 18:34

Tags