我有一个文本文件,其中列出了目录中的文件名(摘录如下)。项目名称是 f 后跟 3 位数字。
771M Jan 22 02:35 f186
1.2G Jan 22 02:35 f172
771M Jan 22 02:36 f206
771M Jan 22 02:37 f151
771M Jan 22 02:37 f029
1.2G Jan 22 02:38 f162
771M Jan 22 02:40 f168
1.2G Jan 22 02:42 f244
...
我想要一个 列表,只有 的 3 位数字。因此,我需要通过“无”来替换前面的列。由于每行前列的内容不同,我将使用星号,以下方法在 VIM 中对我来说似乎是逻辑:
:%s/*f/
在那里我替换了所有后跟 f 的内容。
为什么这不起作用?我如何在 VIM 中做到这一点?
最佳答案
Vim 使用正则表达式,在正则表达式中,星号实际上是一个量词。
你想要的是这个:
:%s/.*f/
.
字符表示任意字符,*
表示任意数量的 .
。因此,组合 .*
基本上可以匹配任何内容,这正是您要查找的内容。正则表达式同时是我所学过的最有用和最烦人的东西,所以我建议熟悉它们。
关于vim - 在vim中查找并替换为星号(*),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57072448/