美文网首页
shell脚本统计iOS项目中图片使用情况(瘦身)<带详细注释>

shell脚本统计iOS项目中图片使用情况(瘦身)<带详细注释>

作者: 专家搬运工 | 来源:发表于2019-04-18 22:30 被阅读0次

    描述

    出于瘦身目的,需要了解项目中使用到了哪些大图片,项目工程很大的时候,无法人工处理,于是该脚本产生了,最终会输出 html 文件用于展示结果。
    脚本适用于任何项目,不限制于 iOS 项目。

    源码

    #!/bin/bash
    
    #定义第一个参数为搜索目录,如果没输入参数,默认搜索当前目录
    SEARCH_PATH=$1
    if [[ -z $SEARCH_PATH ]]
    then
        SEARCH_PATH="."
        echo "Please input search path. Now search path is current path '.'"
    fi
    
    #临时文件存储未排序结果
    TEMP="unsorted_image_temp"
    rm -rf $TEMP
    
    # 搜索目标文件 (-type f 普通文件 -name '*.gif' 名字后缀为gif的文件 -o 或者 or)
    find $SEARCH_PATH -type f -name '*.gif' -o -name '*.jpg' -o -name '*.JPG' -o -name '*.png' -o -name '*.PNG' -o -name '*.jpeg' -o -name '*.JPEG' | while read file;
    do
    
      # 开始处理每一张图片
    
      # 获取图片size (stat 查看状态 -f 按指定format打印  %后边跟z表示size)
      size=`stat -f %z $file`
      # 把图片大小转换成kb,保留三位小数点
      sizekb=`echo "$size 1024.0" | awk '{printf "%.3f", $1 / $2}'`
      echo $file,$sizekb
      line="<a href=\"$file\">$file</a> ( $sizekb kb ) <br>"
    
      # 把每张图片信息写进临时文件
      echo $line >> $TEMP
    
    done
    
    # 根据图片大小进行排序 (-t " " 以空格作为分隔符 -n 以数字大小排序 -r 逆序排列 -k 4 以第四栏作为sort_key)
    files=`cat $TEMP | sort -t " " -nr -k 4`
    # 计算图片数量
    count=`echo $(cat $TEMP | wc -l)`
    # 计算图片总大小 (awk 命令,以空格分割,第4栏的累计之和)
    total_size_kb=`awk -F ' ' '{sum += $4} END {print sum}' $TEMP`
    
    rm -rf $TEMP
    
    # 把结果打印到html文件,方便使用浏览器查看,且可以点击a标签直接查看图片
    HTML="sorted_images_list.html"
    rm -rf $HTML
    
    echo "<html>\n<h1> Sorted images by Zhiyunyu</h1>" >> $HTML
    echo "<body>" >> $HTML
    echo "<h2>There are $count images (total size: $total_size_kb kb)</h2>" >> $HTML
    echo "<pre>\n$files\n</pre>" >> $HTML
    echo "</body>\n</html>" >> $HTML
    

    效果

    执行命令后会在终端打印信息,并最终生成 html文件,脚本支持携带目录参数,默认为当前目录

    ➜  bundles git:(zhiyunyu_test_shell) ✗ sh zhiyun_sort_image.sh
    Please input search path. Now search path is current path '.'
    ./web.bundle/image-nodpi/news_relate_bar_v3_2.png,0.170
    ./web.bundle/image-nodpi/commentweiboicon@2x.png,0.899
    ./web.bundle/image-nodpi/giftIcon_placeHolder@2x.png,1.141
    ./web.bundle/image-nodpi/seperator_line@2x.png,0.094
    ./web.bundle/image-nodpi/intro_bg.png,0.289
    ./web.bundle/image-nodpi/weibohot_head_default_img@2x.png,1.214
    ./web.bundle/image-nodpi/placeholder_liveReservation@2x.png,1.653
    ./web.bundle/image-nodpi/concern_hook_icon_press@2x.png,0.106
    ./web.bundle/image-nodpi/expression_num_logo@2x.png,0.891
    ./web.bundle/image-nodpi/night-icon_cycle_worldcup_detail@2x.png,0.483
    ./web.bundle/image-nodpi/livefloor@2x.png,49.416
    ./web.bundle/image-nodpi/night-gameGift_back.png,0.607
    ./web.bundle/image-nodpi/default_subscribe_img_logo@2x.png,2.639
    ./web.bundle/image-nodpi/night-placeholder_editor@2x.png,1.411
    ./web.bundle/image-nodpi/night-offline_download_video@2x.png,1.883
    ./web.bundle/image-nodpi/night-giftIcon_placeHolder@2x.png,1.141
    ./web.bundle/image-nodpi/weibo_message_box_top@2x.png,0.236
    
    企业微信截图_65056938-dc76-4a12-9072-b4d74648dfdb.png

    相关文章

      网友评论

          本文标题:shell脚本统计iOS项目中图片使用情况(瘦身)<带详细注释>

          本文链接:https://www.haomeiwen.com/subject/tvixgqtx.html