And*_*son 5 shell-script macos
我需要创建大量图像的 TIF 和 JPG 版本。
所有 JPG 图像都已存在,但仅是 TIF 图像的一部分。是否有一种简单的方法可以搜索目录以查找所有没有相应 TIF 文件的 JPG 文件(即具有相同名称但具有不同文件扩展名的文件)?
假设所有图片都在images目录中并且有.jpg后缀,下面这个小脚本会打印出所有.tif在UNIX上没有对应文件的图片文件:
#!/bin/sh
find images/ -type f -name "*.jpg" |
while read j; do
t=${j%.jpg}.tif
if [ ! -f "$t" ]; then
echo "Lacking tif file: " $j
fi
done
Run Code Online (Sandbox Code Playgroud)
将此粘贴到文件中,并将其保存在存储图像的文件夹上方。你可以称之为find-images。例如:
??? find-images
??? images/
??? 1.jpg
??? 2.jpg
??? ...
Run Code Online (Sandbox Code Playgroud)
现在,打开Utilities/Terminal.app,并使用cd命令导航到您的脚本所在的文件夹,例如,如果脚本在您的桌面上,只需输入cd Desktop。
然后,输入chmod +x find-images。现在您只需调用./find-images.
我将使用 Python,因为它是跨平台的。首先将您的 jpg 和 tif 文件放在不同的文件夹中。
import os
jpgPath = "path/to/jpgs/folder"
tifPath = "path/to/tifs/folder"
jpgList = [item.rsplit(".", 1)[0] for item in os.listdir(jpgPath)]
tifList = [item.rsplit(".", 1)[0] for item in os.listdir(tifPath)]
diffList = [item for item in jpgList if item not in tifList]
print diffList
Run Code Online (Sandbox Code Playgroud)
然后,将此脚本保存到一个文件中,位于您硬盘上的某个位置,名称可能为find-images.
现在,打开Utilities/Terminal.app,然后输入python /path/to/file。例如,如果您将它保存在您的桌面上,它将是python ~/Desktop/find-images(因为它~是您的主文件夹的快捷方式)。在这里,您可以运行有关在 Mac 上运行 Python 文件的更详细说明。
小智 3
Perl 一行:
find . -name '*.jpg'|perl -nle 's/\.jpg//;unless(-f "$_.tif"){print "$_.jpg"}'
Run Code Online (Sandbox Code Playgroud)
63个字符:
find . -name '*.jpg'|perl -pnle 's/.jpg//;-f "$_.tif"||"$_.jpg"'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
742 次 |
| 最近记录: |