Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。
命令如下:sed -i “s/原字符串/新字符串/g” `grep 原字符串 -rl 所在目录`
例如:我要把 charset=gb2312 替换为 charset=UTF-8,执行命令:sed -i “s/charset=gb2312/charset=UTF-8/g” ‘grep charset=gb2312 -rl /www’ 即可。
如果把文件按竖线"|"或分号";"分割替换成hive的" 1"分割
sed -i 's/|/x1/g;
s/;/x1/g
' a.txt
把一个[文件目录][类别目录][日期目录]*.tar.gz改成gzip格式,并替换分隔符,换成hive的" 1"分割
for dir in `ls .` do if [ -d $dir ] then echo $dir cd $dir for dir in `ls .` do if [ -d $dir ] then echo $dir cd $dir find . -mindepth 1 -name "*.tar.gz" -type f -exec tar -zxvf {} ; -exec rm -rf {} ; find . -mindepth 1 -name "*.*" -type f -exec sed -i 's/|/x1/g;s/;/x1/g' {} ; -exec gzip -r {} ; cd .. fi done cd .. fi done