在linux服务器中,单独文件或批量进行替换文件中某个字符串。
命令格式
sed -i "s/old/new/g" `grep old -rl path`
old是待被替换的字符串,new是待替换old的新字符串,grep操作主要是按照所给的路径查找old,path是所替换文件的路径;
-i选项是直接在文件中替换,不在终端输出,
-r选项是所给的path中的目录递归查找,
-l选项是输出所有匹配到oldstring的文件。
测试文件准备
替换单独文件
例如:替换test01里面的分隔符“,”为“|”,命令如下
sed -i "s/,/|/g" test01.txt
执行结果如下
批量替换文件
例如:替换目录下所有.txt后缀的分隔符“,”为“|”,命令如下(备注:已将测试数据还原)
sed -i "s/,/|/g" `grep "," -rl /home/hadoop/shell/wen/*.txt`
执行结果如下