我有一个如下所示的文件:
Stroszek;12/01/1977;5.74;Drama,Comedy;7.142;Bruno S.(2),Eva Mattes(1),50 Cent(2),Wilhelm von Homburg(2),Burkhard Driest(2),Clayton Szalpinski(0),Ely Rodriguez(0),Alfred Edel(0),Scott McKain(0),Pitt Bedewitz(0),Ralph Wade(0),Michael Gahr(2),Vaclav Vojta(0),Yüksel Topcugürler(0)
Patients;01/03/2017;5.889;Drama,Comedy;25.000;Pablo Pauly(2),Soufiane Guerrab(2),Moussa Mansaly(2),Nailia Harzoune(1),Franck Falise(0),Yannick Renier(2),Alban Ivanov(2),Jason Divengele(0),Côme Levin(2),Dominique Blanc(1),Anne Benoît(1),Rabah Nait Oufella(2)
Carnage;16/09/2011;9.4;Drama,Comedy;45.454;Kate Winslet(1),Jodie Foster(1),Christoph Waltz(2),John C. Reilly(2),Elvis Polanski(0),Eliot Berger(0),Julie Adams(1),Joseph Rezwin(2),Tanya Lopert(1),Nathan Rippy(2),Lexie Kendrick(1)
我想使用 vim 命令将其转换为如下所示:
Stroszek;12/01/1977;5.74;Drama,Comedy;7.142;21222000000200
Patients;01/03/2017;5.889;Drama,Comedy;25.000;222102202112
Carnage;16/09/2011;9.4;Drama,Comedy;45.454;11220012121
我希望文件末尾的数字是第一个文件中括号内的数字。问题是由于第一行中的 50 cent 中的 '50',我不能删除除第六个字段中的数字之外的所有内容,因为那样会保留 50。
我尝试过如下命令:
:%s/\v(.*)(\(\d\))(.*)/\=substitute(submatch(2), '\D', '', 'g')/g
和 :
:%s/\v(.*)(\(\d\))(.*)/\2/g
但似乎都无法正常工作。有人知道该怎么做吗?