使用 VIM 从 csv 中删除第 4 列之后的所有数据

Pat*_*パトシ 3 csv vim

我有一个非常大的 20k+ 行 csv 文件。我只想保留前 3 列并删除其余的列。我的界限字符是 |

以下是我的数据示例。如何在 vim 中轻松地做到这一点?我本想只做一个可视化块模式并像这样删除它,但我可能会不小心删除真实数据。我只需要 vim 检测分隔符并在第三个之后删除。

有哪些 vim 食谱?

在此输入图像描述

tha*_*llo 5

normal对文本文件中的所有行使用命令。

:%normal! 3f|D

  • %对于缓冲区中的所有行
  • normal!应用普通命令(从该行的第一列开始)
  • 3f|找到第三次出现的|
  • D从当前光标位置删除到行尾。