Есть ли способ получить и экспортировать совпадающую часть только при поиске по шаблону без изменения текущего файла?
Например, из файла, содержащего:
57","0","37","","http://www.thisamericanlife.org/Radio_Episode.aspx?episode=175"
58","0","37","","http://www.thisamericanlife.org/Radio_Episode.aspx?episode=170"
Я хочу экспортировать новый файл, содержащий:
http://www.thisamericanlife.org/Radio_Episode.aspx?episode=175
http://www.thisamericanlife.org/Radio_Episode.aspx?episode=170
Я могу сделать это, используя такую замену:
:s/.\{-}\(http:\/\/.\{-}\)".\{-}/\1/g
:%w>>data
Но команда подстановки изменяет текущий файл. Есть ли способ сделать это без изменения текущего файла?
Обновление:
Я ищу такую команду:
:g/pattern/.w>>newfile
Эта команда записывает всю строку, где происходит совпадение. Я хочу экспортировать только совпадение, а не всю строку.
2 ответа
Просто измените свой заказ:
:w newfile.txt
:e newfile.txt
:%s/.\{-}\(http:\/\/.\{-}\)".\{-}/\1/g
:w
Вы имеете в виду это?
:e currfile.txt
:s/.\{-}\(http:\/\/.\{-}\)".\{-}/\1/g
:w newfile.txt
Или вы хотите продолжить редактирование предыдущего файла?
РЕДАКТИРОВАТЬ: Или вы можете просто отменить (нажмите "u").
Похожие вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки строк, разбора и преобразования. Укажите язык (PHP, Python и т. д.) или инструмент (grep, VS Code, Google Analytics и т. д.), который вы используете. Не размещайте вопросы, требующие объяснения того, что означает символ или чему будет соответствовать конкретное регулярное выражение.