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
-
read
armazena os 6 campos nas variáveis$a
a$f
- Em seguida,
sed
substitui os primeiros 3 campos como uma string separada por espaços com os últimos 3 no arquivoIMS_Procedures.txt
.-i
ativa 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
.