解决MacOS的Sed报invalid command错误
这两天再更换博客的主题,顺便把博客内的文章分类重新整理下。
由于有一部分的tag的更改具有重复性,为了省力气,就用sed来完成批量替换。
进入_post
文件件后执行下面的命令,遇到了invalid command
的错误,
1 | ➜ _posts git:(new_theme) sed -i "s/categories/tags/g" `grep "categories" -rl ./` |
对命令修改了好几个样子,都是报invalid command code
,最后在stackoverflow找到了答案,
http://stackoverflow.com/a/7573438/2086146,原来是需要再增加个参数来选择是否备份源文件。
即命令可以修改成下面的样子:
1 | ➜ _posts git:(new_theme) sed -i.back "s/categories/tags/g" `grep "categories" -rl ./` |
这样,sed
命令会把源文件备份出一个后缀为.back
的文件,然后在源文件里进行修改。
如果想直接替换源文件,可以修改成下面的样子:
1 | ➜ _posts git:(new_theme) sed '' -i "s/categories/tags/g" `grep "categories" -rl ./` |
最后打印了下sed
的help
,的确是有个参数,不过没有写怎么用。。
1 | ➜ ety001.github.io git:(master) ✗ sed --help |