sed erro de substituição de texto

0

Estou tentando substituir texto em um arquivo com um valor em uma variável usando sed :

file=1601001000100000003_0003_0_E_2011-11-21_16-52-16.db

sed -i "s/yyyy/$file" tempsbchg.sh

mas sed retorna:

sed: -e expression #1, char 58: unterminated 's' command

Eu também tentei:

sed -i "s/yyyy/${file}" tempsbchg.sh
    
por Prasad 23.11.2011 / 15:26

2 respostas

1

Você precisa "terminar" a substituição - coloque um / no final:

file=1601001000100000003_0003_0_E_2011-11-21_16-52-16.db

sed -i "s/yyyy/$file/" tempsbchg.sh
    
por 23.11.2011 / 15:33
1

Você está perdendo o último / .

Tente:

sed -i "s/yyyy/$file/" tempsbchg.sh

A sintaxe do comando s (como em substituto) é 's / regexp / replacement / flags' . Os caracteres / podem ser uniformemente substituídos por qualquer outro caractere único dentro de qualquer comando s . O caractere / (ou qualquer outro caractere usado em seu lugar) pode aparecer em regexp ou substituição somente se for precedido por um caractere \.

    
por 23.11.2011 / 15:33