Mesclar pdfs com base nas primeiras duas palavras no nome do arquivo

1

Eu tenho uma pasta contendo vários arquivos com a seguinte estrutura de nome de arquivo:

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

Desejo combinar os PDFs começando com as mesmas duas palavras como parte do nome do arquivo para obter o seguinte:

John Doe.pdf
Jane Smith.pdf

Como eu faria isso no Linux usando um script e qualquer uma das ferramentas disponíveis no Linux?

    
por To Do 24.07.2016 / 18:04

1 resposta

0

Um pouco velho eu sei, eu queria um script assim:

  • listar arquivos com um caractere de hífen
find -iname '*-*.pdf'
  • mantenha a parte antes do hífen
find -iname '*-*.pdf' | sed "s/-.*$//"
  • remover duplicados: você tem os prefixos que deseja ("John Doe", "Jane Smith") (você pode ignorar os prefixos com apenas uma ocorrência, mas isso provavelmente não será necessário se o comando combine pdf estiver satisfeito com um arquivo e apenas copiá-lo)
find -iname '*-*.pdf' | sed "s/-.*$//" | sort -u
  • faça um loop sobre os prefixos, para cada um obtenha a lista dos arquivos que começam com este prefixo e combine-os
IFS=$'\n';for prefix in $(find -iname '*-*.pdf' | sed "s/-.*$//" | sort -u) ; do pdfunite $prefix* $prefix.pdf ; done
    
por 27.07.2016 / 16:22