Есть ли способ получить и экспортировать совпадающую часть только при поиске по шаблону без изменения текущего файла?

Например, из файла, содержащего:

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

Эта команда записывает всю строку, где происходит совпадение. Я хочу экспортировать только совпадение, а не всю строку.

1
Mert Nuhoglu 13 Июн 2010 в 13:44

2 ответа

Лучший ответ

Просто измените свой заказ:

 :w newfile.txt
 :e newfile.txt
 :%s/.\{-}\(http:\/\/.\{-}\)".\{-}/\1/g
 :w
2
rampion 13 Июн 2010 в 17:03

Вы имеете в виду это?

:e currfile.txt
:s/.\{-}\(http:\/\/.\{-}\)".\{-}/\1/g
:w newfile.txt

Или вы хотите продолжить редактирование предыдущего файла?

РЕДАКТИРОВАТЬ: Или вы можете просто отменить (нажмите "u").

0
Umang 13 Июн 2010 в 14:07
Да, это похоже на то, что я делаю. Я могу отменить, но мне интересно, есть ли способ сделать это, не меняя текущий файл, например: g / pattern / .w >> newfile
 – 
Mert Nuhoglu
13 Июн 2010 в 14:46