linux sed批量修改数据

linux sed批量修改数据

sed命令下批量替换文件内容   
格式: sed -i "s/查找字段/替换字段/g" grep 查找字段 -rl 路径
或者 sed -i "s/查找字段/替换字段/g" 文件名
-i 表示inplace edit,就地修改文件
 -r 表示搜索子目录
 -l 表示输出匹配的文件名

s表示替换,d表示删除

DemondeMBP:pro demon$ sed -i "s/test.bull.com/qk-test.bull.com/g" pro_20.jmx

Mac 报错
mac 执行sed -i指令时,总是出现extra characters at the end of command

sed: 1: "pro_20.jmx": extra characters at the end of p command

查看了资料才知道,原来unix与linux在执行sed指令是,是有些区别,在-i指令后面多加一个“”空格即可。

改成如下就正确:

DemondeMBP:pro demon$ sed -i "" "s/test.bull.com/qk-test.bull.com/g" pro*.jmx

经试验,仅仅-i指令有影响,其他的-n,-e指令无影响

grep qk-test -rl .:查找当前目录及子目录,列出文件内容包含有“qk-test”的文件名称,在sed指令后必须用反点“`"引起来。

DemondeMBP:pro demon$ sed -i "" "s/qk-test.bull.com/test.bull.com/g" `grep qk-test -rl .`