我需要替换所有出现的“句点星号”,如下所示:
blah blah .*:.*:.* blah blah
和:
[0-9][0-9]:[0-9][0-9]:[0-9][0-9]
最终结果如下所示:
blah blah [0-9][0-9]:[0-9][0-9]:[0-9][0-9] blah blah
我尝试了以下不同的变体,但没有成功:
%s_ .*:.*:.* _ [0-9][0-9]:[0-9][0-9]:[0-9][0-9] _g
答案1
您给出了一个带有“句点星号”的行的示例,该行重复了三次,并用冒号分隔。如果您的数据总是这样,您不妨坚持使用亚历克斯·P的回答。但你的问题说 您需要替换所有出现的“句点星号”。如果说陈述问题的正确性,你应该使用
:%s/\.\*/[0-9][0-9]/g
即使“句号星号”不以三个为一组出现,它也会查找并替换它。
答案2
对于维姆::%s/\.\*:\.\*:\.\*/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/g
为了sed
:sed -e 's/\.\*:\.\*:\.\*/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/g'
。
%
意味着在所有行上应用替换;sed
默认情况下,命令应用于所有行时不需要。\.
是一个句点;裸露.
意味着任何字符。\*
是一个星号;裸露*
意味着 0 个或多个前面的原子。