用Vim当命令行工具替换内容

用AutoHotkey做文件内容处理一般是如下步骤:

  1. 读取文件内容到变量str
  2. 修改str变量
  3. 删除原文件,并FileAppend(str, fp)

这个步骤不复杂,但是需要考虑其他因素

  1. 原文件编码类型,否则读取会有问题
  2. 原文件分行为DOS还是UNIX
  3. 有些情况,还要考虑是否有BOMB选项

基于以上情况,个人比较偏向用文本处理工具来打开文件,修改后直接保存,不管编码。
于是就折腾了Vim的命令行参数
gvim.exe -e -s -u NONE -c "set nobackup noswapfile nowritebackup encoding=utf-8" -c "%s/reg/new/g" -c wq c:\1.txt
其中要修改的是3处

  1. reg是查找内容,注意\符号需要转义成\\如果有中文就不好用了,暂时还没解决
  2. new是替换内容,如果有中文需要用\='abc'.nr2char(numOrd)形式转成表达式,也有点麻烦
  3. c:\1.txt是文件路径

另外可用sed,只是小试了下,路径的表达方式要注意
sed.exe -i 's/reg/new/g' /c/1.txt

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA捐赠
共{{data.count}}人
人已捐赠
其他函数案例

Matplotlib尝试

2022-8-15 20:02:42

其他

AutoHotkey里prototype(原型)和class的关系

2022-8-15 20:48:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索