vi замена текста
Все очень просто со словами
А как быть если заменяемое значение - путь к файлу
Н-р
%s/home/vasya//usr/local/vasya/g
Выдает ошибку E4888 Trailing characters
Скажу сразу , что испробовал все (экранирование спецсимволов и т.д )
Во всяких sed-ах прокатывает
s!home/vasya!/usr/local/vasya!gА что говорит поэтому поводу man vi ??
> Во всяких sed-ах прокатывает
> s!home/vasya!/usr/local/vasya!g
> А что говорит поэтому поводу man vi ??Да он говорит что
%s/что/на что/g
>> Во всяких sed-ах прокатывает
>> s!home/vasya!/usr/local/vasya!g
>> А что говорит поэтому поводу man vi ??
> Да он говорит что
> %s/что/на что/gпочитайте на тему эскйеп-последовательностий.
всмысле, чем-бы мне заэскйпить "/"?
>>> Во всяких sed-ах прокатывает
>>> s!home/vasya!/usr/local/vasya!g
>>> А что говорит поэтому поводу man vi ??
>> Да он говорит что
>> %s/что/на что/g
> почитайте на тему эскйеп-последовательностий.
> всмысле, чем-бы мне заэскйпить "/"?"/" заэкспейсивается "\"
пробовал и так . Ошибка сохраняется
>> А что говорит поэтому поводу man vi ??
> Да он говорит что
> %s/что/на что/gДубина...
If you are substituting with a "from" or "to" part that includes a slash, you
need to put a backslash before it. A simpler way is to use another character
instead of the slash. A plus, for example::s+one/two+one or two+
Но, да, "не man? нет, не man".
>[оверквотинг удален]
>> Да он говорит что
>> %s/что/на что/g
> Дубина...
> If you are substituting with a "from" or "to" part that includes
> a slash, you
> need to put a backslash before it. A simpler way is
> to use another character
> instead of the slash. A plus, for example:
> :s+one/two+one or two+
> Но, да, "не man? нет, не man".Так я уже делал.
%s/\/home/vasya/\/usr/local/vasya/g
>[оверквотинг удален]
>> Да он говорит что
>> %s/что/на что/g
> Дубина...
> If you are substituting with a "from" or "to" part that includes
> a slash, you
> need to put a backslash before it. A simpler way is
> to use another character
> instead of the slash. A plus, for example:
> :s+one/two+one or two+
> Но, да, "не man? нет, не man".backslash экранирует нормальный слэш в любом регулярном выражении.
Я сразу написал , что символами экранирования пользовался
>[оверквотинг удален]
>> Дубина...
>> If you are substituting with a "from" or "to" part that includes
>> a slash, you
>> need to put a backslash before it. A simpler way is
>> to use another character
>> instead of the slash. A plus, for example:
>> :s+one/two+one or two+
>> Но, да, "не man? нет, не man".
> backslash экранирует нормальный слэш в любом регулярном выражении.
> Я сразу написал , что символами экранирования пользовалсяВсе ! Вопрос решен ! Всем спасибо за содействие
>[оверквотинг удален]
>>> If you are substituting with a "from" or "to" part that includes
>>> a slash, you
>>> need to put a backslash before it. A simpler way is
>>> to use another character
>>> instead of the slash. A plus, for example:
>>> :s+one/two+one or two+
>>> Но, да, "не man? нет, не man".
>> backslash экранирует нормальный слэш в любом регулярном выражении.
>> Я сразу написал , что символами экранирования пользовался
> Все ! Вопрос решен ! Всем спасибо за содействиеЭкранировать надо каждый прямой слэш, а не только первый
---------vvvvvvvvvvvvvvvvvvvvvvv
>>>> :s+one/two+one or two+-----------^^^^^^^^^^^^^^^^^^
>>>> Но, да, "не man? нет, не man".
>> Все ! Вопрос решен ! Всем спасибо за содействиеНа здоровье!
> Экранировать надо каждый прямой слэш, а не только первый
Нет, блин, __НАДО__ другой разделитель аргументов использовать.