1. 前言
完成了《Hexo添加categories页面》,接下里的工作,就是给以前写的文章进行重新分类。以前分为五大类:设计开发、点滴发现、生活札记、精华转载和读者集萃。现在打算分成四大类:随笔(essay)、专业(dev)、英语(en)和爱好(hobby),然后在每个大类下再按需要细分为小类。
分类需要修改md文件的文件名和文件内容,面对近五百篇文章,必须要批量处理。
2. 批量修改文件名
假设要把所有以“disc-”开头的文件改为“dev-”开头,那么在linux下执行命令:
1 | # macos |
3. 批量修改文件内容
1、假设我们要把文件中的“设计开发”改为“专业”,那么执行命令:
1 | sed -i "s/设计开发/专业/g" `grep 设计开发 -rl .` |
2、假设我们要把文件中的http://7oxjrx.com1.z0.glb.clouddn.com
改为http://cdn.voidking.com
,那么执行命令:
1 | sed -i "s/http:\/\/7oxjrx.com1.z0.glb.clouddn.com/http:\/\/cdn.voidking.com/g" `grep http:\/\/7oxjrx.com1.z0.glb.clouddn.com -rl .` |
3、假设我们要把文件中的https://www.voidking.com/2018/06/11/dev-hexo-categories/
改为https://www.voidking.com/dev-hexo-categories/
,这个就比较难了,可以先进行调试:
1 | grep -P '\d{4}\/\d{2}\/\d{2}\/' -rl . |
因为grep和sed都不支持完全的正则表达式,所以grep要加P参数,sed要改写正则表达式。最后得到的命令为:
1 | sed -i "s/\([0-9][0-9][0-9][0-9]\)\/\([0-9][0-9]\)\/\([0-9][0-9]\)\///g" `grep -P '\d{4}\/\d{2}\/\d{2}\/' -rl .` |
4、假设我们想要把 [engineering,devops]
替换成 [专业,开发,nginx]
,那么执行命令(请使用linux而不是mac):
1 | sed -i "s/专业,开发,nginx/engineering,devops/g" `grep '专业,开发,nginx' -rl .` |