случай
Я пытаюсь заменить все вхождения <value>*</value>
в <value>file:\\</value>
в указанном файле test.txt
.
Я работаю в Windows и использую sed
я установил с Win-32 скомпилированным набором утилит bash.
Я использую следующую команду:
sed -n "s/<value>.*<\/value>/<value>file:\\\\<\/value>/g" "test.txt" > "test.txt.new"
Я хочу выполнить эту команду как часть скрипта Wpkg .
проблема
Когда я использую эту команду из командной строки, все работает правильно.
Но когда я использую эту команду через скрипт Wpkg :
<install cmd='%BASH%\sed -n "s/<value>.*<\/value>/<value>file:\\\\<\/value>/g;" test.txt" > "test.txt new"' />
... то, что я получаю, это:
Exit code returned non-successful value (2) on command '%BASH%\sed -n "s/<value>
.*<\/value>/<value>file:\\\\<\/value>/g;" "test.txt" > "test.txt.new"'.
Вышеуказанное означает, что приложение sed
вернуло код выхода 2. Кроме того, новый файл не был создан.
Я очень долго просматривал Google, и, к моему удивлению, у sed
довольно плохая документация. Я не нашел документации относительно этого кода выхода.
Вопрос
Кто-нибудь понял, что означает код выхода 2 для sed
?
... или альтернативное решение?
(должно быть оставлено без присмотра, наверняка можно использовать обычные инструменты bash)