sed -i 's/www.google.com/www.baidu.com/g' 文件全路径名
上面这个指令相当于把文件中所有的www.google.com 替换为www.baidu.com
如果文件全路径名中有空格 如/opt/good file.txt,这时就会出错,需要用“”来标记一下
sed -i 's/www.google.com/www.baidu.com/g' "/opt/good file.txt"
如果我们相把一个文件夹下所有的文件都进行这样的替换
grep www.google.com -rl 目录名 |xargs sed -i "s/www.google.com/www.baidu.com/g"
但这个目录下如果有空格的文件就会出错于是改为
grep www.google.com -rl 目录名 |tr '\n' '\0'| xargs -0 sed -i "s/www.google.com/www.baidu.com/g"
解决思路就是,把每行的'\n'转换为'\0',再使用xargs的 -0选项
另外一种写法
sed -i "s/www.google.com/www.baidu.com/g" `grep www.google.com -rl 目录名 |tr '\n' '\0'`
注意 ` 不是单引号 注意 ` 不是单引号 注意 ` 不是单引号