[linux] 替換字符串


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

 

把一個[文件目錄]\[類別目錄]\[日期目錄]\*.tar.gz改成gzip格式,並替換分隔符,換成hive的"\01"分割

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM