iOS 修改类的前缀
2019-03-22  本文已影响0人 
观星
修改类的前缀,比如类的前缀原来是XYZ,现在要改成ASD,可以试试。
使用
sh file.sh -o 旧的前缀 -n 新的前缀 需要替换的目录
注意事项
- 没有针对负责场景进行测试,使用前记得提交代码、切换分支
 - 主要通过文件名进行操作,如果在一个文件中定义了多个类,和文件名相同的类名才会被处理,其他的不会替换
 - 替换的目录尽可能小
 
echo 'sh file.sh -o 旧的前缀 -n 新的前缀 需要替换的目录'
while getopts "o:n:" opt; do
  case $opt in
    o)
      oldPrefix=$OPTARG 
      ;;
    n)
      newPrefix=$OPTARG 
      ;;
    \?)
      echo "Invalid option: -$OPTARG" 
      ;;
  esac
done
src=${@: -1}
echo $oldPrefix
echo $newPrefix
echo $src
for file in `find $src -name "${oldPrefix}*"`; do
    
    # 文件名,包含后缀
    fileName=${file##*/}
    
    if [[ ! -d $file ]]; then
        # 文件所在目录
        dir=${file%/*}
        # 新的文件名,包含后缀
        nFilePath=${newPrefix}${fileName#${oldPrefix}}
        # 新文件的完整地址
        nPath=${dir}/${nFilePath}
        # 原文件名,不含后缀
        oFileName=${fileName%.*}
        # 新文件名,不含后缀
        nFileName=${newPrefix}${oFileName#${oldPrefix}}
        # 文本替换
        LC_ALL=C sed -i "" "s/$oFileName/$nFileName/g" `grep $oFileName -rl $src`
        # 重命名文件
        mv -v $file $nPath
    fi
done