由于本人才疏学浅,对问题认知难免有偏差,本着学习与共享的精神和大家一起探讨,若有不对之处,望大家多多批评指正。
- #!/bin/bash
- #批量替换多个文件中的字符串
- opath=`pwd`
- echo "输入工作目录:"
- read wpath
- if( test $wpath"empty"="empty") then
- wpath=`pwd`
- fi
- if( ! test -d $wpath ) then
- echo "目录不存在!"
- exit
- fi
- echo "输入源字符串:"
- read src
- echo "输入目标字符串:"
- read tar
- echo "输入文件筛选条件,例如 *.url :"
- read filter
- cd $wpath
- files=`grep -rl $src $filter | grep -v ".svn/*"`
- for f in $files
- do
- sed -i "s/$src/$tar/g" $f
- done
- cd $opath
- 可以通过这个脚本快速准确的实现多个文件批量替换字符串,如果你不用脚本也可以通过下面的命令简单实现
- sed -i "s/搜索字符/替换字符/g" `grep "搜索字符" -rl ./ | grep -v '.svn/*'`,如果无.svn文件可将最后一个grep去掉
本文出自 “我相信” 博客,转载请与作者联系!