项目状态:
所有资源文件都被集中在根目录下的
--Resources
--Images
需求:
模块化中,根据各种功能和业务分了很多的pods,需要将图片资源合理的分配到各个pods中xx/Resources/Images,目前工程里有3800个资源文件
方案:
1、扫描出所有代码中用到的图片资源字符串,map对应的路径
2、逐个扫描资源文件,在1中的map找到对应路径,放过去。
具体:
1、扫描出所有代码中的资源文件
find . -iregex ".*\.m" | awk "{print $1}" | while read filepath ; do
path1=`echo $filepath`
cat "$path1" | awk "{print $1}" | while read mline ; do
if [[ $mline == *@\"*\"\]* ]]; then
filename=`echo $mline | sed 's/^.*@\"//g' | sed 's/\".*$//g' `
if [[ $filename =~ .*_.* ]]; then #大部分资源带了下划线,如果没有下划线这步不需要
echo $filepath";"$filename >> resource
fi
fi
done
done
2、将资源文件在1中的map里进行比对并挪动
ls Resources/Images | awk "{print $1}" | while read pngfile; do
#过滤@2x @3x
pngname=`echo $pngfile | sed 's/@.*\.png//g' `
mpath=`grep -E $pngname resource`
IFS=';' arr=($mpath)
pngfilepath="Resources/Images/"$pngfile
IFS='/' a=($arr)
IFS=';'
if [[ ${#a[1]} > 0 ]]; then
path="${a[1]}/Resources/Images"
mv $pngfilepath $path
fi
done
同事说用ruby python都方便很多,对于刚接触脚本,只能边查边怼,毕竟目的只是将3小时手动工作缩短到1小时写脚本的时间。花时间越少越好。
工作中遇到规律性高的工作都可以考虑通过脚本...比较有趣一些。掌握一门脚本语言真的很有用。