как заменить конкретную строку на несколько строк в редакторе vi / vim - PullRequest
0 голосов
/ 12 марта 2020

У меня есть следующие строки в файле:

|other words in line| abcd_1234.xyz |other words in line|

|other words in line| abcd_2345.xyz |other words in line|

|other words in line| abcd_3456.xyz |other words in line|

|other words in line| abcd_4567.xyz |other words in line|

Я хочу изменить вышеуказанные строки на

|other words in line| q |other words in line|

|other words in line| q |other words in line|

|other words in line| q |other words in line|

|other words in line| q |other words in line|

Я пытался :%s/abcd*.xyz/q/g, но, похоже, это не работает. Пожалуйста, кто-нибудь может подсказать, как go об этом.

Ответы [ 2 ]

2 голосов
/ 12 марта 2020

Попробуйте следующее:

:%s/(abcd_[0-9]{4}\.xyz)/q/g 
0 голосов
/ 12 марта 2020

Если мы можем рассчитывать на наличие пробелов и |, тогда вы можете использовать:

:%s/\|(.*)\| (abcd_.*) \|(.*)\|/\1q\3

PS: вы можете использовать https://regex101.com/r/DHLbIx/1, чтобы помочь вам с соответствием

...