有时候,我们希望把有些文件的特定内容替换成其他的,假如一个一个替换效率太低了,这个时候,我们可以借助强大的grep和sed 完成。
比如我有一些文件,我希望把其中的file.awen.me 这个url 替换成file.fangwenjun.com,首先,我们需要查找当前目录中包含这个域名的文件:
1 | egrep -rn 'file\.awen\.me' *.md |
如图所示
linux 修改
然后使用sed 替换
1 | sed -i "s@file\.awen\.me@file\.fangwenjun\.com@g" `grep file\.awen\.me -rl ./` |
最后我们验证下
1 | ubuntu@ubuntu-xenial:/vagrant/_posts$ sed -i "s@file\.awen\.me@file\.fangwenjun\.com@g" `grep file\.awen\.me -rl ./` |
发现使用file.awen.me 已经查找不到了,而使用file.fangwenjun.com 可以查到。
1 | ubuntu@ubuntu-xenial:/vagrant/_posts$ egrep -rn 'file\.fangwenjun\.com' *.md |
mac 系统
mac 下 sed 替换 需要指定一个备份文件才可以。
1 | sed -i "_bak" "s@tags: 心情@tags: 随笔@g" `grep 'tags: 心情' -rl ./` |