sed插入和删除匹配行

  sed功能非常强大,利用来处理文本文件不要太爽。要是能熟练掌握,在文本江湖简直随心所欲,无往而不利。我自然也想学学,不过入坑awk有点久。通常习惯了一种方式以后就难以醉心到另一种。这也大约是少林72绝技一般和尚难同时融汇多种的原因吧。一般人也很难精通多个领域。这两天在配置这个博客时遇到一些要对所有post处理的步骤。于是就尝试了sed的用法。倒是很方便。例如:

  1. 匹配包含date行,在该行后添加copyright: true。
1
sed -i '/date/a\copyright: true' a.md 

在行前添加就把a换做i。

  1. 删除包含copyright的行。
1
sed -i '/copyright/d' a.md
  1. 批量处理就这样。
1
2
3
4
for md in *md
do
sed -i '/copyright/d' $md
done

  题外话,是不是觉得我找抽啊,插入了copyright之后又删掉。说来话长。我怕有人copy了我的东西不打声招呼,于是就想申明一下许可权益啊版权信息啊什么的(申明之后别人爱拿还得拿)。于是搜索到上仙那里,根据教程开始弄。过程中就得来个批量处理,用sed添加copyright。结果出来还不错。可谁知那个“署名”前面的cc图标老是乱码(一个叉)。哎呀,我这个暴脾气(洁癖),如何受得了。于是就搜啊搜,怎么才能显示出来呢?结果,啥办法没有。最后只能根据另一位上神的教程重新弄了一个简单的主题默认的版权信息。然后就得批处理copyright。啊,世界安静了。