如何在 vi 中搜索和替换以消除已知字符串前面的随机字符数?



我有这样的文本文件:

0 298047498 /directory1/app/20170417/file1.blob 0 f191
e 6569844 /directory1/app/20170417/file2.blob 0 f191
344 /directory1/app/20170417/file3.blob 0
8946 /directory1/app/20170417/file4.blob 0
196496 /directory1/app/20170417/file5.blob 0
9 182340752 /directory1/app/20170417/file6.blob 0 f191
68802 /directory1/app/20170417/file7.blob 0

我想删除第一个/之前的所有内容以及文件扩展名之后的所有内容。

结果应如下所示:

/directory1/app/20170417/file1.blob
/directory1/app/20170417/file2.blob
/directory1/app/20170417/file3.blob 

有没有办法使用 vi 搜索和替换来做到这一点?

这种类型的问题可能更适合放在这里:https://vi.stackexchange.com/

但是现在:
例如,您可以使用一个简单的vim宏,在其中收集编辑一行所需的所有击键,并根据需要多次重复此宏。

这里只是一行的击键:

dt/WD

d= 删除。.
t= ..直到第一个"/">
W= [shift]+[w] 跳转到下一个单词(在"文件位置字符串"之后(
D= [shift]+[d] 删除直到当前行的末尾

如果要将其记录为宏,请执行以下操作,从上方开始,在两者之间击键 - 如下所示:

qmdt/WD[home][down]q

qm= 在缓冲区"m"中开始录制宏
...从上方
击键[home][down]= 键 [主页] 后跟 [向下箭头]键,移动到下一行(方便(
q= 结束宏录制

现在使用以下命令执行该宏

@m

如果您添加了 [down] 键,则可以执行以下操作:

7@m

你用它发射你的宏 7 次,用于你的所有 7 行。

最新更新