regex - vim 和 csv 文件 : put header info into a new column

标签 regex vim csv replace copy-paste

我有大量 csv 文件,如下所示:

<小时/>

xxxxxxxx
xxxxx
发货,YD564n
xxxxxxxxx
xxxxx

1、RR1760
2、HI3503
3、HI4084
4、HI1824

<小时/>

我需要让它们看起来像下面这样:

<小时/>

xxxxxxxx
xxxxx
发货,YD564n
xxxxxxxxx
xxxxx

YD564n,1,RR1760
YD564n,2,HI3503
YD564n,3,HI4084
YD564n,4,HI1824

<小时/>

YD564n 是货件编号,每个 csv 文件都不同。但它总是紧接在“发货”之后。

我可以使用哪些 vim 命令?

最佳答案

在正常模式下在一个文件中键入以下内容:

qqgg/^Shipment,<CR>ww"ay$}j:.,$s/^/<C-R>a,<CR>q

请注意<CR>是 ENTER 键,并且 <C-R>是 CTRL-R。

这将更新该文件并在寄存器 q 中记录命令。

然后在每个其他文件中键入@q(也在正常模式下)。 (这将回放寄存器 q)

关于regex - vim 和 csv 文件 : put header info into a new column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/867347/

相关文章:

regex - 使用正则表达式清理公司名称

regex - 为什么 unicode 引号会出现在 perl6 中的正则表达式捕获周围?

vim - 根据我处于插入模式还是普通模式,如何在 vim 中更改光标样式?

vim - 快速浏览DiffOrig,然后切换回

r - 当 "skip"很大时,fred 占用大量内存

ruby - 使用 ruby​​ 在正则表达式中选择一个字符串

ruby-on-rails - 清理用户正则表达式

vim - 你如何在 vim 编辑器中超链接文本?

c# - 在 DataGridview C# 中打印 Csv 数据而不使用 olehDBconnect

python - 对字典进行排序并将其写入 CSV 文件