我有一个文本文件,其中列出了目录中的文件名(摘录如下)。项目名称是 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/

10-13 09:08