1

我有 M1.jpg M2.jpg ....... M100.jpg 在 /Users/KanZ/Desktop/Project/Test/ 我想翻转画布垂直它们,保存和替换它们而不是旧文件。我该如何为这个问题编写脚本?

4

1 回答 1

1

您可以使用convert来做到这一点,在find的帮助下,您不必编写循环:

find /Users/KanZ/Desktop/Project/Test/ -type f -name "M*.jpg" -exec convert {} -flip {} \;

解释:

  • find /Users/KanZ/Desktop/Project/Test/- 调用find工具并指定基目录以递归地执行文件搜索。
  • -type f- 仅查找文件
  • -name "M*.jpg"- 仅查找名称以开头M和结尾的文件.jpg
  • -exec ... \;- 对于找到的每个此类文件,执行以下命令...
  • convert {} -flip {}- 这是翻转图像的实际命令。{}'s 是作为命令一部分的语法,find它们表示找到的文件find将被替换到哪里。所以在这里我们说使用选项convert垂直翻转图像-flip,但保持文件名不变。

或者:

您也可以使用循环和通配符来做到这一点:

for file in /Users/KanZ/Desktop/Project/Test/M*.jpg; do convert "$file" -flip "$file"; done
于 2012-12-23T04:23:35.737 回答