Подтвердить что ты не робот

Добавление символов в начале и конце каждой строки в файле

Каков наилучший способ добавить некоторые символы в начале и в конце каждой строки? Можно ли это сделать с помощью Vim или каким-либо другим способом?

4b9b3361

Ответ 1

В vim вы можете сделать

:%s/^\(.*\)$/"\1"/
  • s/regex/replace/ - команда vim для поиска n replace.
  • % делает его применимым во всем файле
  • ^ и $ обозначает начало и конец строки соответственно.
  • (.*) захватывает все, что находится между ними. ( и ) должны быть экранированы в vim-регулярных выражениях.
  • \1 помещает захваченное содержимое между двумя кавычками.

Ответ 2

проще:

%s/.*/"&"

Объяснение: По умолчанию шаблон интерпретируется как максимально возможное совпадение, поэтому .* интерпретируется как целая строка, без необходимости ^ и $. И хотя \(... \) может быть полезно при выборе части шаблона, она не нужна для всего шаблона, который представлен & в замена. А также окончательный / в поиске или замене не нужен, если только что-то не следует; хотя оставить его можно считать лени. (Если так, я ленив.)

Ответ 3

Два ответа, предлагающие %s, идеальны, и я ожидаю, что вы научитесь любить %s и использовать его часто. Но если вы хотите, чтобы вы часто окружали другие блоки текста, вы должны сделать это для себя, чтобы проверить плагин surround.vim, который позволяют делать то, что вы просили, со следующими четырьмя нажатиями клавиш: yss" И есть много других полезных встроенных целей объемного звучания. Например, чтобы окружить текущее слово двойными кавычками: csw" и изменить окружающие одинарные кавычки на двойные кавычки: cs'".

surround.vim является одним из моих любимых плагинов vim, и я использую его ежедневно.

Ответ 4

лучше использовать будет sed (особенно если вам нужно script)

cat foo.txt | sed s/^\(.*\)$/"\1"/g