我有一个文本文件,其中列出了目录中的文件名(以下摘录)。项目名称是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/
该.
字符表示任何字符,并且*
表示任何数量的.
s。因此,组合.*
基本上可以匹配任何您想要的东西。
正则表达式同时是我所学过的最有用和最烦人的东西,因此我建议您熟悉它们。