Excluir uma linha correspondente em um arquivo não funciona

1

Então, eu tenho este pedaço de código:

while read line 
        do
            if [ $line = $maddr ] ;
            then
                sed -i '/${maddr}/d' mailinglist
                found=true
                break

            fi
        done < mailinglist

Se a linha de leitura corresponder à minha variável (uma string), exclua a linha inteira.

Quando não funcionou, eu testei com o sinalizador -x , o padrão é encontrado e entra no ciclo if, ele até faz o comando sed, mas a linha fica lá.

(Eu criei o arquivo "mailinglist" no script, então pensei, talvez ele não tivesse permissão de escrita, mas eu verifiquei e até onde eu sei, eu tenho a permissão - eu basicamente não t mudar nada sobre permissões no script).

Eu acredito que o comando sed está certo (eu tenho que editar o arquivo e salvá-lo imediatamente). Você pode me ajudar?

    
por Wanderer 20.05.2014 / 22:26

1 resposta

1

Funciona muito bem assim, não apenas com aspas simples, mas duplas. Eu tenho a tendência de complicar demais as coisas.

while read line 
        do
            if [ $line = $maddr ] ;
            then
                sed -i "/$maddr/d" mailinglist
                found=true
                break

            fi
        done < mailinglist
    
por 20.05.2014 / 22:45