前言
完成了Hexo添加categories页面,接下里的工作,就是给以前写的文章进行重新分类。以前分为五大类:设计开发、点滴发现、生活札记、精华转载和读者集萃。现在打算分成四大类:随笔(essay)、专业(dev)、英语(en)和爱好(love),然后在每个大类下再按需要细分为小类。
分类
分类需要修改md文件的文件名和文件内容,面对近五百篇文章,我表示想要放弃。不过,作为一名极客,肯定还是有偷懒的办法的。
批量修改文件名
假设要把所有以“disc-”开头的文件改为“dev-”开头,那么在linux下执行命令:1
rename 's/disc-/dev-/' *
批量修改文件内容
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
2
3
4
5grep -P '\d{4}\/\d{2}\/\d{2}\/' -rl .
echo "https://www.voidking.com/2018/06/11/dev-hexo-categories/" | sed "s/\d{4}\/\d{2}\/\d{2}\///g"
echo "https://www.voidking.com/2018/06/11/dev-hexo-categories/" | sed "s/\([0-9][0-9][0-9][0-9]\)\/\([0-9][0-9]\)\/\([0-9][0-9]\)\///g"
因为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 .`
后记
这个分类过程,花费了很多时间,不过还是值得的。以上分类,看起来就合理了很多。