Skip to content

Latest commit

 

History

History
70 lines (45 loc) · 2.22 KB

README.md

File metadata and controls

70 lines (45 loc) · 2.22 KB

文件递归替换

命令截图

简单的文件查找和替换命令行

业务场景:要将目录下所有的文件(js、CSS等等)中的'a.com'替换成'b.net'等。支持正则匹配。

思路是这样的:

  1. 首先将根据目标目录,生成镜像文件夹结构;此时只有文件夹,没有文件;
  2. 遍历这些文件,读取到内存中
  3. 使用replace方法,替换字符串
  4. 输出到目标文件。

如何使用?

首先全局安装:

npm install -g reps

切换到具体目录,试一下下面的命令:

命令行格式:

reps origin [dest] [--old oldStr] [--new newStr] [--reg]

或:

reps origin dest --o oldStr --n newStr  [-r]

【参数解释】

  • origin必须。表示要处理文件的文件夹
  • dest可选。如果不传目标目录dest,则表示就地替换;
  • --old -o可选。如果不传,则不替换;
  • --new -n: 可选,默认值是空字符。
  • --reg -r: 可选,表示是否是按正则方式匹配

reps origin:直接返回。

reps origin dest : 相当于递归拷贝文件夹,不作替换

reps origin -o "a.com" : 相当于原地去除文件中所有的 a.com字样

【示例】

定位到ori所在的目录,运行命令:

reps tests/ori tests/dest --old a.com --new b.net

该语句的含义是,将tests/ori中所有文件内的'a.com'字符替换成'b.net'后,镜像到 tests/dest 目录(该目录如果不存在会自动创建)中,而原来的tests/ori文件夹内容不变。看上去,相当于将 文件夹 ori 重命名成dest

【如何使用本示例】

  1. 切换到bin/目录下
  2. 正则示例:node reps.js ../tests/ori ../go -o '\d{2,3}' -n 'jscon' -r 将会使用正则匹配;
  3. 非正则匹配示例:node reps.js ../tests/ori ./go -o 'jscon' -n 'boyc'

Changelog

2015.04.17(星期五) 兼容linux下的环境 2015.04.16(星期四) 创建此脚本,修复相对路径,使用 process.cwd() 代替 __dirname变量