Я пытаюсь изменить файл с помощью sed, но получаю ошибку, которую не понимаю:
sed: -e выражение #1, char 0: нет предыдущего регулярного выражения
Команда:
sed -e 's/^/"asset\//' example.txt
Пример файла:
joe
john
peter
sed из msys2:
which sed
sed является внешним: C:\msys64\usr\bin\sed.exe
При добавлении текста в конец каждой строки следующее работает как положено:
sed -e 's/$/",/' y.txt
Джо",
Джон",
Питер",
Я в растерянности, чтобы понять, что здесь не так.
Ответ 1 · рейтинг 1 · RavinderSingh13
EDIT (решение для cygwin): Попробуйте использовать cygwin sed, только что протестированный в системе, и он отлично работает из командной строки. При использовании ' одинарных кавычек с sed я получаю ту же ошибку, что и OP, но при использовании " в sed я могу получить правильное поведение sed (ожидаемый, добавить " перед каждой строкой)
sed -E "s/^/\"/" Input_file
EDIT2 (взято из комментариев Tripleee): Вы также можете сохранить свою команду sed в файл с именем file с помощью команды s/^/\"/, а затем запустить код sed, выполнив, успешно протестировав его с помощью сигвин sed.
sed -f file Input_file
Альтернативное решение (протестировано и работает на cygwin): У меня нет с собой cygwin, поэтому я не могу протестировать его, хотя упомянутое вами решение отлично работает для BASH. Не могли бы вы попробовать использовать другой подход один раз? Я только что протестировал это решение и на cygwin, и там оно работало нормально (комментарий EDIT).
sed 's/\(.*\)/"\1/' Input_file