使用sed批量修改文件
下午的时候遇到一个烦事,需要将一些html中的图片由png改为gif。大约有20来个,如果一个一个改的话,真是有些烦人。该自动化的都应该让他自动化。
在思考如何脚本化这个问题的时候,我想到这个需求有一个关键点是:需要修改原文件,而不是在管道中传递。请教Google大神之后,再man sed一下,答案出来了。
1,使用sed的打印功能,在执行替换前检查一下
$sed -n '/.png/p' c*.htm
2,没有问题的话,执行替换
$sed -i 's/.png/.gif/' c*.htm
3,如果你在执行替换前想做一个备份(在原文件之后加.bak扩展名)
$sed -i.bak 's/.png/.gif/' c2.htm
使用Evernote之后,我的很多即时性的小脚本都可以记录下来了。这相当于一个缓冲区,先存在缓冲区中之后再将其Blog出来。
以后,会有很多小篇幅的Blog,来记录这些随手使用的小脚本。