Flutter:脚本处理多倍图的命名及移入对应目录

脚本rename_move.sh
#!/bin/bash

srcFolder=$(echo $PWD)
dstFolder=$(echo $PWD)

# 检验当前文件夹下是否有文件
while [ -n "$(find "$srcFolder" -maxdepth 1 -type f ! -name .DS_Store)" ]; do
  IFS=';' read -r -p "请输入要修改的源文件名(输入q则退出): " srcName other

  # 输入q执行提前退出
  if [[ "$srcName" == "q" ]]; then
    echo "执行退出操作"
    break
  fi

  read -r -p "请输入要修改的目标文件名(输入q则退出): " dstName
  # 输入exit执行提前退出
  if [[ "$dstName" == "exit" ]]; then
    echo "执行退出操作"
    break
  fi

  # 判断目标路径下是否已经有了对应的文件名
  if [ -e "$dstFolder/$dstName.png" ]; then
    echo -e "\033[31m\n目标文件夹中已存在重名文件,移入操作已取消。\n\033[0m"
  else

    src1Path=""$srcFolder"/"$srcName""$other".png"
    if [ -e "$src1Path" ]; then
      mkdir -p "$dstFolder/1.0x"
      mv "$src1Path" "$dstFolder/1.0x/${dstName}.png"
      echo "文件移入成功。"
    else
      echo "\033[33m\n您输入的源文件${src1Path}不存在, 请重试.\n\033[0m"
    fi

    # 判断二倍图是否存在
    if [ -e "$srcFolder/${srcName}@2x$other.png" ]; then
      mkdir -p "$dstFolder/2.0x"
      mv "$srcFolder/${srcName}@2x$other.png" "$dstFolder/2.0x/${dstName}.png"
      echo "文件移入2倍图成功。"
    fi

    # 判断三倍图是否存在
    if [ -e "$srcFolder/${srcName}@3x$other.png" ]; then
      mkdir -p "$dstFolder/3.0x"
      mv "$srcFolder/${srcName}@3x$other.png" "$dstFolder/3.0x/${dstName}.png"
      echo "文件移入3倍图成功。"
    fi
  fi

  # 判断源路径下是否有文件
  if [ -z "$(find "$srcFolder" -maxdepth 1 -type f ! -name .DS_Store)" ]; then
    echo "\033[32m================================所有文件处理完毕================================\033[0m"
  fi
done

由于直接将图片放置到工程对应的文件夹下,vscode感知不到,故先在外部生成, 之后手动拖进vscode。

初级使用

1、sh rename_move.sh;

2、分别输入 源文件名称 目标文件名称;(对于 组 274(1).png 组 274@2x(1).png这种非常规命名的多倍图,源文件名需要输入: 组 274;(1))。

3、自动循环执行 或 通过输入 exit 提前退出。

高级使用:添加到全局(针对MacOS)

1、mkdir ~/bin && cp rename_move.sh ~/bin/frm;

2、echo 'export PATH="$PATH:~/bin"' >> ~/.zshrc

接下来可以在任意路径里,直接通过 sh frm 来调用了。如果还感觉麻烦,可以在~/.zshrc里定义alias frm="sh frm", 那么直接frm就可以了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容