В переменных $ column1
и $ column2
в конце стоит новая строка, а команда sed
выглядит так:
sed "s/FILEDESCRIPTOR . DESCR00001
/FILEDESCRIPTOR . DESCRIPTIVENAME
/g" IMS_Procedures.txt
sed
распознает это как незавершенную команду s.
Используйте вместо этого:
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
сохранить 6 полей в переменных от $ a
до $ f
sed
заменяет первые 3 поля в виде строки, разделенной пробелами, с последними тремя в файле IMS_Procedures.txt
. -i
активирует редактирование на месте, при котором изменения записываются в файл, а не выводятся на экран. Обратите внимание на .
в sed
будет соответствовать любому символу, а не только точке. Это должно быть предотвращено с помощью \.
во входном файле
.