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的"\01"分割
sed -i 's/|/\x1/g;
s/;/\x1/g
' a.txt
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