1

У меня есть папка, содержащая несколько файлов со следующей структурой имени файла:

John Doe - title.pdf
John Doe - title2.pdf
John Doe - title3.pdf
Jane Smith - some title.pdf
Jane Smith - second title.pdf

Я хотел бы объединить PDF-файлы, начинающиеся с тех же двух слов, как часть их имени файла, чтобы получить следующее:

John Doe.pdf
Jane Smith.pdf

Как мне поступить в Linux, используя скрипт и любые инструменты, доступные в Linux?

1 ответ1

0

Я немного стар, я знаю, я хотел такой сценарий:

  • список файлов с дефисом
find -iname '*-*.pdf'
  • сохранить часть перед дефисом
find -iname '*-*.pdf' | sed "s/-.*$//"
  • удалить дубликаты: у вас есть префиксы, которые вы хотите ("Джон Доу", "Джейн Смит")(вы можете игнорировать префиксы, имеющие только один случай, но это, вероятно, не требуется, если команда комбинирования pdf удовлетворяет одному файлу и просто копирует его )
find -iname '*-*.pdf' | sed "s/-.*$//" | sort -u
  • Зацикливайте префиксы, для каждого из них получите список файлов, начинающихся с этого префикса, и объедините их
IFS=$'\n';for prefix in $(find -iname '*-*.pdf' | sed "s/-.*$//" | sort -u) ; do pdfunite $prefix* $prefix.pdf ; done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .