#!/bin/bash - #===============================================================================## FILE: apk_rename.sh# # USAGE: ./apk_rename.sh # # DESCRIPTION: # # OPTIONS: ---# REQUIREMENTS: ---# BUGS: ---# NOTES: ---# AUTHOR: linkscue (scue), linkscue@gmail.com# CREATED: 2013年04月15日 15时17分18秒 HKT# COPYRIGHT: Copyright (c) 2013, linkscue# REVISION: 0.1# ORGANIZATION: ATX风雅组#===============================================================================set -o nounset # Treat unset variables as an errorif [[ $# != 1 ]]; then echo "usage: $(basename $0)" exit 0fidir="$1"#-------------------------------------------------------------------------------# 相关的函数#-------------------------------------------------------------------------------en_label () # 获取英文名称{ aapt d badging "$1" | awk -n -F"'" '/application-label:/ {print $2}'| sed 's/ //g' 2>/dev/null}cn_label () # 获取中文名称{ aapt d badging "$1" | awk -n -F"'" '/application-label-zh_CN/ {print $2}' | sed 's/ //g' 2>/dev/null}zh_label (){ aapt d badging "$1" | awk -n -F"'" '/application-label-zh:/ {print $2}' | sed 's/ //g' 2>/dev/null}version (){ aapt d badging "$1" | awk -n -F"'" '/versionName/ {print $6}'| sed 's/ //g' 2>/dev/null}activity () # 获取活动{ aapt d badging "$1" | awk -n -F"'" '/launchable-activity/ {print $2}' | sed 's/ //g' 2>/dev/null}#-------------------------------------------------------------------------------# 变量替换方式把' '替换为'_'#-------------------------------------------------------------------------------find $dir -name "*.apk" -type f | while read line; # 只显示文件 do tmp=\"$line\"; # 获取文件 echo $tmp; # 为xargs准备 echo ${tmp// /_} ; # 变量替换 done | xargs -n 2 mv -v 2> /dev/nullfind $dir -name "*.apk" -type f | while read apkdo version_name=$(version "$apk") cn_label_name=$(cn_label "$apk") if [[ "$cn_label_name" != "" ]]; then new_name="${cn_label_name// /_}"_"$version_name".apk echo "mv: $(basename "$apk") --> $new_name" mv "$apk" "$dir/$new_name" else zh_label_name=$(zh_label "$apk") if [[ "$zh_label_name" != "" ]]; then new_name="${zh_label_name// /_}"_"$version_name".apk echo "mv: $(basename "$apk") --> $new_name" mv "$apk" "$dir/$new_name" else en_label_name=$(en_label "$apk") if [[ "$en_label_name" != "" ]]; then new_name="${en_label_name// /_}"_"$version_name".apk echo "mv: $(basename "$apk") --> $new_name" mv "$apk" "$dir/$new_name" fi fi fidone 2> /dev/null