Pode haver abordagens mais elegantes (no entanto, qualquer uma delas vem à minha mente agora), então vamos nos ater a sed
.
-
Por que você não comanda o trabalho como você espera?
$
corresponde ao fim de linha , por isso suaupdate table ...
string é colocada no final de cada linha. -
Como melhorar?
- Você não precisa de
cat
;sed
usa um arquivo como argumento também. - Defina a linha inteira como um padrão correspondente (
.*
corresponde a tudo, coloque-a em colchetes com escape para fazer referência a ela:\(.*\)
-
Use a string de comando sql como um substituto e coloque a marca de referência
quando apropriado:
sed "s|\(.*\)|update table set field where file_number=\'\';|" file.txt > file.sql
produzindo
update table set field where file_number='123456789'; update table set field where file_number='234567891'; update table set field where file_number='345678912'; update table set field where file_number='456789123';
- Você não precisa de