首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Shell脚本学习小结

2013-03-22 
Shell脚本学习总结做多个目录下的文件的sed替换时发现效率太低,原命令如下:find$PATH -type f -exec sed -

Shell脚本学习总结

做多个目录下的文件的sed替换时发现效率太低,原命令如下:

find  $PATH -type f -exec sed -i "s/aaa/bbb/g" {} \;

但是由于单个目录下有8000+个文件,效率实在太低,而且多个目录,多个替换,整个耗时长达10+秒.

研究目录下文件结构发现,有很多jpg,gif,swf等文件,而且这些文件大小还不小,sed扫描时间很长,故希望能跳过这些文件.于是命令就变成这个样子:

find  $PATH -type f -name ".*\.\(jpg\|png\|swf\|psd\|JPG\)" -exec sed -i "s/aaa/bbb/g" {} \;

?但是我的目的是不替换这些文件...遍寻正则取反未果,于是把主意打到xargs上.利用grep -v取反.

?最后的脚本如下:

find  $PATH -type f -print | grep -v ".*\.\(jpg\|JPG\|gif\|png\|ico\|psd\|swf\)"  | xargs sed -i "s/aaa/bbb/g";

?脚本耗时速度从10+s减为2-3s.

?

热点排行