pdf 给子目录中的所有文件(如果尚不存在)发短信



如果文本文件尚不存在,我需要对子目录中的所有文件进行pdftotext。 我试过:

find . -name "*.pdf" | while read file; if [ ! -e $file.txt ] do pdftotext $file; done;

但收到:-bash:语法错误接近意外标记"完成">

我建议:

find . -name "*.pdf" | while IFS= read -r file; do if [ ! -e "$file.txt" ]; then pdftotext "$file"; fi; done

请参阅:help whilehelp if

不要将数据通过管道传输到 shell;从 find 执行 shell 循环。

script='
  for f in "$@"; do
    if ! [ -e "$f" ]; then
      pdftotext "$f"
    fi
  done
'
find . -name '*.pdf' -exec sh -c "$script" _ {} +

这将适用于任何有效的文件名,即使是包含换行符的文件名。 find 每次调用脚本时都会将尽可能多的文件传递给脚本,并根据需要多次调用脚本来处理所有文件。

相关内容

  • 没有找到相关文章

最新更新