1. 因为把域名从www.actiger.com更改为actiger.com了, 博客中大量引用的地址要替换, 所以就有了替换文件中字符串.

2. 随意查了下sed使用率比较高, linux, mac平台都有, 那就它了.

1. linux


# 替换文件中每行中第1个a为b

sed -i 's/a/b/' 文件

# 替换文件中所有的a为b

sed -i 's/a/b/g' 文件

# 不替换文件内容, 仅打印出替换后的效果, 下面命令打印所有行匹配的字符串.

sed -e 's/a/b/g' 文件



2. mac


# 替换文件中所有的a为b, mac这里必须指定备份文件名称, ""表示空, 也可"_backup"原文件做个备份.

sed -i "" 's/a/b/g' 文件

sed -i "_backup" 's/a/b/g' 文件

3. 还能和其他命令连着用, 比如正则匹配一些文件, 替换匹配文件中的内容. sed与grep和ag都可连用.


# 当前目前下test开头文件结尾所有main替换成hello

sed -i 's/a/b/g' `grep -rl hello --include="test*" .`


# 把.c文件结尾所有main替换成hello, find与ag过滤文件,
# find ${HOME}/WorkPlace/test当前目录所有文件, 一定要写全路径, 防止误操作.
# ag "\.c$"中.需要转译,$表示结尾

sed -i "" 's/main/hello/g' `find ${HOME}/WorkPlace/test |ag "\.c$"`