В настоящее время я пишу пакетный скрипт для чтения и изменения некоторых файлов конфигурации в Windows. К счастью, у меня есть доступ к сказанному, и поэтому я могу использовать его для большей части того, что мне нужно делать, хотя и с некоторыми причудами, связанными с окружающей средой.
Я хотел бы выполнить следующее заявление:
sed '/\[$/{:loop N /^^]/!b loop} s/\n//g'
Который теоретически должен удалить любые символы новой строки в строках между строками с квадратными скобками. Здесь я использую двойные символы вставки, чтобы избежать и использовать второй (причуда cmd.exe
). Однако это не удается из-за следующей ошибки:
sed: -e expression #1, char 15: extra characters after command
При тестировании некоторых других утверждений я получил следующие результаты.
sed '/ \ [/ {s /.*// g}'
- Выполняется так, как должно
sed '/ \ [/ {N} s /.*// g'
- Ошибка sed: -e выражение # 1, char 11: дополнительные символы после команды
sed 's / ^^ * / ^ & \ n /: loop s /.*/ asdf / b loop'
- Ошибка с sed: -e выражение # 1, char 12: неизвестный параметр для
s'`
Я просто не уверен, связана ли моя ошибка с моим основным оператором из-за того, что я испортил синтаксис, или это просто потому, что Я в винде. Любые мысли или помощь, которые вы можете предоставить, были бы замечательными.