Na variável $column1 e $column2 , há uma nova linha no final e o comando sed é exibido assim:
sed "s/FILEDESCRIPTOR . DESCR00001
/FILEDESCRIPTOR . DESCRIPTIVENAME
/g" IMS_Procedures.txt
sed reconhece isso como um comando s não terminado.
Use isso:
while read -r a b c d e f; do
sed -i "s/$a $b $c/$d $e $f/g" IMS_Procedures.txt
done <file
-
readarmazena os 6 campos nas variáveis$aa$f- Em seguida,
sedsubstitui os primeiros 3 campos como uma string separada por espaços com os últimos 3 no arquivoIMS_Procedures.txt.-iativa a edição no local, que as alterações são gravadas no arquivo, em vez de impressas na tela.
- Em seguida,
Observe que . em sed corresponderá a qualquer caractere e não apenas ao ponto. Isso tem que ser informado com \. na entrada file .