iOS模块化-图片资源的拆分脚本

项目状态:
所有资源文件都被集中在根目录下的
--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小时写脚本的时间。花时间越少越好。
工作中遇到规律性高的工作都可以考虑通过脚本...比较有趣一些。掌握一门脚本语言真的很有用。

你可能感兴趣的:(iOS模块化-图片资源的拆分脚本)