如何在Mac-OS上从列表中选择文件

时间:2014-09-14 10:38:57

标签: macos terminal

我有一堆完全相同名称的.cr2和.jpg文件。 " .CR2"是数字负片的文件格式,每个.jpg都转换为8位版本的cr2-photo。每个摄影师都使用佳能相机获得这种结构:拍摄一张照片 - 获得一个.cr2版本和一个.jpg版本。 Cr2-s的权重很大,这就是我将jpegs发送给我的客户进行过滤的原因。在他们发回数千张最好的一百张照片之后,我必须逐一挑选这张照片的cr2版本。必须有一个更好的方法。在Windows中我找到了一种方法,通过复制选择到totalcommander中选择这个文件到缓冲区 - 修改(在文本编辑器中替换每个" .jpg"到" .cr2")然后从中恢复选择缓冲。这个问题似乎是dumn,但是我无法找到mac的答案,我一个接一个地选择这个文件并且我知道所有摄影师都在做同样的事情,这让我疯狂。

1 个答案:

答案 0 :(得分:0)

这是一个bash脚本,只需双击即可完成您想要的操作。首先,您需要编辑前两行告诉它1)可以找到CR2文件的位置,以及2)客户端已接受JPEG的位置。

最初,我假设CR2文件位于您的登录/主目录下,并且客户端接受的JPEG在您的桌面上名为accepted的文件夹中。编辑第3行和第4行以反映实际情况,然后将以下脚本保存在桌面上GetCR2s.command

#!/bin/bash
#
# You can edit the next two lines to match your setup
CR2LOCATION="$HOME"
ACCEPTEDLOC="$HOME/Desktop/accepted"

shopt -s nocasematch    # Match JPG and jpg and CR2 and cr2 regardless of case
shopt -s nullglob       # Don't die if there are no files

# Tell user what is going on...
echo Locating CR2s in $CR2LOCATION, to match accepted files in $ACCEPTEDLOC...

# Go where the JPEGs are, or give up
cd "$ACCEPTEDLOC" 2> /dev/null
if [ $? -ne 0 ]; then echo ERROR: Unable to change directory to $ACCEPTEDLOC; exit 1; fi

# Consider all JPEGs in this directory
for f in *.jpg; do
   cr2="${f%%jpg}cr2"   # Replace "jpg" extension with "cr2"
   echo Processing \"$f\", looking for \"$cr2\"...
   find "$CR2LOCATION" -iname "$cr2" -not -path "$ACCEPTEDLOC" -exec cp "{}" . \; 2> /dev/null
done

然后,启动终端应用程序,并在使用前执行以下操作一次,以使脚本可执行:

cd Desktop
chmod +x GetCR2s.command

现在,您应该能够将客户已接受的图像(通过点击电子邮件程序中的Save Attachments)保存到Desktop/accepted文件夹中,然后只需双击脚本{{1}在您的桌面上,它会将所有匹配的CR2文件收集到该文件夹​​中。