且行善举,莫问前程。

0%

博客迁移

博客迁移

最近看一些技术博客,很多博客都是用的next的主题,再一看使用的hexo的博客引擎,再去github上看一看next主题,有点难我是迁移不来的。

我的博客

之前使用的liiac模板渲染引擎,主要原因是python开发的,对我来讲是很容易维护的,可以自己添加一些功能。模板也是用jinja2来写的。 就功能来讲的话基本是足够了。但是人都有一颗追求美的心。让我写前端还可以,但是让我凭空设计一个那是难上加难。所以要直接换成hexo了。

迁移准备

因为都是markdown渲染,所有没有什么数据库的问题,直接把post文件拿过来就好。仔细对照格式只要把头部修改一下就可以。 之前用的tom来写的配置,hexo像是用yaml。

tom

title = title

yaml

title: title

我要考虑的是,遍历所有的文件,将tom格式替换成yaml。首先考虑的肯定不是python,而是有更好的选择,那就是sed。

Stream Editor

用vim比较多的肯定喜欢(我这句话很多余,vim党根本不用看我这种水文)使用sed,可以很轻松的批量编辑文件中的内容。 而且一些GUI编辑器也会支持这样的高级操作。sed大概有36岁了。

替换内容

sed -i ‘s/oldstring/newstring/g’ file

  • i 是为了直接替换文件内容,否则只会输出到控制台
  • 不加g也可以,具体需求查手册

Mac下

sed -i ‘’ ‘s/oldstring/newstring/g’ file

不备份

替换指定行

sed -i ‘’ ‘1,6s/oldstring/newstring/g’ file

删除指定行

sed -i ‘’ ‘3d’ file # 删除第三行

脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

for file in ./*.md
do
sed -i '' '1,6s/datetime/date/g' $file
sed -i '' '1,6s/ \=/\:/g' $file
sed -i '' '1,6s/-----/---/g' $file
sed -i '' '4d' $file
sed -i '' '4d' $file
sed -i '' '2d' $file
echo $1 $file
done
------ 本文结束 ------