如何获取没有匹配.pdf的.jpg文件列表?

 手机用户2502876273 发布于 2023-02-08 17:03

我试图将一堆坐在树形结构中的.jpg文件转换为.pdf,每个pdf一页.我使用了Adobe Acrobat的批量(自定义动作)转换(顺便说一下,作为一个侧面问题,这是一个好主意吗?必须有更好的方法!)这是一个非常缓慢而痛苦的过程,其中Acrobat冻结了我.在它冻结之前,它也表现不正常,拒绝一些文件.

所以,为了找到我需要创建的丢失的.pdf文件,我去了cygwin尝试了类似的东西

$ find -name  *.jpg  -exec ls '{}/.jpg/pdf' \;

我希望这会将{}视为变量,用.pdf替换.jpg,但替换不会发生.我该怎么做呢?

1 个回答
  • 干得好:

    find . -name '*.jpg' -exec \
        sh -c 'pdf="${1%.jpg}".pdf; test -f "$pdf" || echo missing: $pdf' -- {} \;
    

    诀窍是{}作为命令行参数传递给子shell,以便您可以在shell变量中使用模式替换,在本例中为$1(第一个命令行arg).

    顺便说一句,"${1/.jpg/pdf}"也会工作,但"${1%.jpg}".pdf更准确.

    这种方法相对简单,但效率低下,因为它sh为每个JPG文件启动一个新进程.更高效但更长的解决方案:

    find . -name '*.jpg' -print0 | while read -d $'' f; do \
        pdf="${f%.jpg}".pdf; test -f "$pdf" || echo missing: $pdf; done
    

    2023-02-08 17:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有