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
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
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
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 \.