删除文本文件中的图案后的所有字符

Aar*_*son 12 regex vim

我有一个包含数千行文本的文本文件.每一行结束如

\\server\share\file.txt -> information
Run Code Online (Sandbox Code Playgroud)

我想在文件扩展名结束后删除空格后面的所有内容.所以" - >"之后的所有内容(第一次引用后都有空格)

你会怎么做?我想使用vim,因为我试图更多地了解它,但任何程序都会这样做; 我想尽快完成这项工作.

Tom*_*ola 22

你的描述是矛盾的.

  1. "在文件扩展名结束后跟随空格的一切"
  2. "所以一切都在" - >"(第一次引用后有空格)"

你想保留箭头吗?

简单地完成1:

:%s/ ->.*/
Run Code Online (Sandbox Code Playgroud)

实际上,如果你真的想在箭头前保留空间,就像你说的那样,那将是:

:%s/ ->.*/ /
Run Code Online (Sandbox Code Playgroud)

2可以用:

:%s/\( ->\).*/\1/
Run Code Online (Sandbox Code Playgroud)

如果您希望在替换之前查看搜索结果,可以先使用/来构建搜索:

/\( ->\).*
Run Code Online (Sandbox Code Playgroud)

这将突出显示所有结果,以确保您正在替换正确的东西.然后,您可以使用空搜索词执行replace命令以使用上次搜索(突出显示的内容).

:%s//\1/
Run Code Online (Sandbox Code Playgroud)


Ben*_*oit 7

如果你想保留箭头:

:%s/ ->\zs .*//
Run Code Online (Sandbox Code Playgroud)

如果要删除它:

:%s/ -> .*//
Run Code Online (Sandbox Code Playgroud)