使用vi查找文件中指定内容并输出到文件

今天碰到这样一个需求,大概有100多个文件,需要从这些文件里面找到一些具有相同格式的代码,然后把他们统一输入到一个txt中去。拿到需求后,我的第一个想法就是使用vi,于是就尝试了一下,得到了一个不是很好的解决方案,如下:

:set nows
:map \1 gg:.,.write >> c:\temp.txt<CR>\2
:map \2 /^[ \t]*form <CR>ma/^[ \t]*with frame .*\.<CR>mb:'a,'bwrite >> c:temp.txt<CR>\2
:map \] :n<CR>\1

set nows
是用来关闭循环搜索的,vi默认会循环搜索一个文件,这样的话,我们就没有结束的条件了,所以要关闭它。

map \1 gg:.,.write >> c:\temp.txt<CR>\2
用来map一个命令\1,gg代表到第一行,:.,.表示复制第一行,
write >> c:\temp.txt<CR>表示写到一个文件,\2是之后还会map的一个命令。注意到,因为需求的细节里面有要求把找到的代码和它们所 在的文件名做关联的要求,而所处理的文件第一行是包含文件名的注释,所以这样做可以达到要求。另外,输出时使用了绝对路径,这是因为需要处理多个文件&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值