【问题标题】:Command line Add retina display extension to all image into a folder命令行将所有图像的视网膜显示扩展添加到文件夹中
【发布时间】:2013-03-16 02:46:04
【问题描述】:

将视网膜显示扩展 (@2x) 添加到特定文件夹中的所有图像的命令行是什么: 例如:eximg.png -> eximg@2x.png

提前致谢。

【问题讨论】:

  • 只有png?你是如何列出那些“图像文件”的?
  • 所有图片都在同一个文件夹中,都是png格式

标签: xcode macos shell command-line


【解决方案1】:

如果文件名包含空格或特殊字符,这也有效:

for f in *.png; do mv "$f" "${f%.png}@2x.png"; done

【讨论】:

    【解决方案2】:

    如果您的文件名没有特殊字母(例如空格),此行将为您打印那些 mv cmd

     ls *.png|xargs -n1|sed -r 's/(.*)(.png)$/mv & \1@2x\2/'
    

    如果所有这些命令都正常,您可以将输出通过管道传输到|sh 以重命名您的文件。

    编辑

     ls *.png|xargs -n1|sed 's/\(.*\)\(.png\)$/mv & \1@2x\2/'
    

    【讨论】:

    • 我得到了非法选项 -- r 错误还有一些带有 SCHAR 的图像,例如 Virgin-Islands,-British.png
    • @Molwiko 我的 sed 是 gnu sed。你的可能是bsd sed?没有OSX的经验。但您可以尝试删除-r,对于每个(),将它们更改为\(\),逗号和破折号没有问题
    • 我试过 ls .png | xargs -n1 | sed 's/(.)(.png)$/mv & \1@2x\2/' 但它不起作用错误-> sed: 1: "s/(.*)(.png )$/mv & \1@2 ...": \1 未在 RE 中定义
    • 我在命令行得到以下输出: mv Cook-Islands.png Cook-Islands@2x.png mv Costa-Rica.png Costa-Rica@2x.png xargs: unterminated quote -- > 没有创建文件
    • 您需要将输出(mv cmds)传递给|sh 进行重命名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 2012-06-13
    • 2014-12-13
    相关资源
    最近更新 更多