Я запускаю следующую команду sed
команду заменить что-то в XML-файле.sed: команда искажена в SunOS
sed -e '/<AddName>/{ s;<AddName>;<ModifyName>;}' ${modified_name_file} > ${RESOURCES}/tempfile2.xml
Это прекрасно работает в Linux, но не в Solaris с последующей ошибкой.
sed: command garbled: /<AddName>/{ s;<AddName>;<ModifyName>;}
я с трудом, чтобы понять это. Есть ли другой способ сделать это в SunOS?
Вы можете попробовать использовать "обычный" 's' синтаксис:' s///'? Возможно, что использование других букв - расширение GNU, а пользовательское пространство SunOS, как известно, очень строго POSIX. –
Скобки не нужны. Мое подозрение в том, что Solaris хочет, чтобы между лексемами была новая строка, но если вы исправите синтаксис, чтобы они не были нужны, код также должен быть более переносимым. Просто 'sed 's// /' file' не будет изменять строки, которые не содержат совпадения в регулярном выражении' '. –
tripleee