2014-10-21 3 views
0

Это конфигурационный файл, и swith не удалось, так что сетевому парню захотелось установить новый путь к swith, и мне нужно было изменить порты - FAST. Так что я использовал% s /: 64 * $ /: 57000/g, и это не изменило их. Я закончил делать это вручную. Как я мог быстро изменить: в vi?Переключатель VI и заменить на vi.

Addr.corp-unix-b1 = corp6503xap:64001 
Addr.corp-unix-b2 = corp6503xap:64002 
Addr.corp-unix-b3 = corp6503xap:64003 
Addr.corp-unix-b4 = corp6503xap:64004 
Addr.corp-unix-b4-dia = corp6503xap:64005 
Addr.corp-unix-b5 = corp6503xap:64006 
Addr.corp-unix-b6 = corp6504xap:64007 
Addr.corp-unix-b6-aapl = corp6504xap:64008 
Addr.corp-unix-b7 = corp6504xap:64009 
Addr.corp-unix-b8 = corp6504xap:64010 
Addr.corp-unix-b8-spy = corp6504xap:64011 
Addr.corp-unix-b8-fas = corp6504xap:64012 
Addr.corp-unix-b8-2 = corp6504xap:64013 
Addr.corp-unix-8a-gld = corp6504xap:64014 
Addr.corp-unix-b9 = corp6504xap:64015 
Addr.corp-unix-b10 = corp6504xap:64016 
Addr.togen-xpho-b6-aapl = corp9189pap:3333 

ответ

4

Ваше выражение отсутствует ., так что вы пытаетесь соответствовать 6 с последующим переменным числом 4-х. Если у вас есть ., то вы соответствуете выражению 64, за которым следует переменное число любого символа в конце строки.

%s/:64.*$/:57000/g 
2

В регулярных выражениях * указывает 0 или больше предыдущего символа, который в вашем случае является 4.

. соответствует любому символу, так что ваша замена была бы написана :%s/:64.*$/:57000/g

0

Просто, чтобы обеспечить альтернативное решение в духе SE:

Вы можете использовать :g в сочетании с :normal

:g/:64/norm $bC57000 

Это находит строки с :64, идет в конец строки, перемещает курсор в начало слова и меняет значение re поддержание линии до 57000.

Смежные вопросы