批量替换多个文件中的字符

时间:2021-06-07 09:00:07

 

  
 
 
  1.     由于本人才疏学浅,对问题认知难免有偏差,本着学习与共享的精神和大家一起探讨,若有不对之处,望大家多多批评指正。

  2.  #!/bin/bash 
  3.  
  4.   
  5. #批量替换多个文件中的字符串 
  6. opath=`pwd` 
  7. echo "输入工作目录:" 
  8. read wpath 
  9. if( test $wpath"empty"="empty") then 
  10. wpath=`pwd` 
  11. fi 
  12. if( ! test -d $wpath ) then 
  13. echo "目录不存在!" 
  14. exit 
  15. fi 
  16. echo "输入源字符串:" 
  17. read src 
  18. echo "输入目标字符串:" 
  19. read tar 
  20. echo "输入文件筛选条件,例如 *.url :" 
  21. read filter 
  22. cd $wpath 
  23. files=`grep -rl $src $filter | grep -v ".svn/*"` 
  24. for f in $files 
  25. do 
  26. sed -i "s/$src/$tar/g" $f 
  27. done 
  28. cd $opath 
  29.   
  30. 可以通过这个脚本快速准确的实现多个文件批量替换字符串,如果你不用脚本也可以通过下面的命令简单实现 
  31. sed -i "s/搜索字符/替换字符/g" `grep "搜索字符" -rl  ./ | grep -v '.svn/*'`,如果无.svn文件可将最后一个grep去掉 
  32.   

 

本文出自 “我相信” 博客,转载请与作者联系!