2017-10-19 64 views
0

我最近使用他们的外卖选项从Google相册下载了我的所有照片。他们通常会在丢失照片时遇到问题,所以我正在努力确保我在线上的照片数量与我下载的数量相符。这里的主要问题是Google Takeout不仅会为每一天(2014-12-23)创建一个新文件夹,还会包含文件夹内的其他文件,如metadata.json2014-12-23-edited.jpg在Mac OSX Terminal中,我们如何确定统计内部没有特定单词的.jpg文件数?

编辑过的部分是在之前编辑过照片。这意味着如果原始照片

2014-12-23.jpg有编辑,它也将包括2014-12-23-edited.jpg

因此,我的问题是,我如何浏览所有文件夹并只计算.jpg文件,并排除任何名称中包含“编辑”字样的.jpg文件?有没有办法在Mac OSX的终端中执行此操作?

回答

2

您可以使用:

find /path/to/top/folder -iname "*.jpg" '!' -iname "*-edited.jpg" | wc -l 

说明:find命令将搜索指定的文件夹及其对符合指定条件的文件夹。 -iname "*.jpg"匹配以“.jpg”结尾的文件名,并且'!' -iname "*-edited.jpg"不包含(即!)以“-edited.jpg”结尾的文件名匹配。 find打印找到的文件的路径,wc -l统计文件的数量(实际上是行数,但除非文件名中有换行符,否则每个文件会有一行)。

+0

所以基本上我会用'-iname“替换'-iname c' * -edited.jpg”'? – user321627

+0

@ user321627 D'oh!是的,这就是它应该是的(现在我已经修复了它)。 –

+0

谢谢,这是超级duper有帮助! – user321627

1

只是为了好玩,一个稍微容易的版本:

find /path/to/start/at -iname \*.jpg | grep -vc "edited.jpg$" 

-v忽略edited.jpg结束线和-c计数它们。

相关问题