J'essaie d'exécuter la commande suivante pour extraire le texte de tous les PDF
find *.pdf | awk '{system("pdftotext "$0)}'
Mais bon sang, un fou a mis des espaces dans les noms de fichiers, comment faire pour que cela se passe bien ?
J'essaie d'exécuter la commande suivante pour extraire le texte de tous les PDF
find *.pdf | awk '{system("pdftotext "$0)}'
Mais bon sang, un fou a mis des espaces dans les noms de fichiers, comment faire pour que cela se passe bien ?
Quel est le rôle de awk dans ce domaine ? Peut-être devriez-vous laisser find
d'exécuter lui-même les choses.
find . -name \*.pdf -exec /path/to/pdftotext {} \;
Ou si vous êtes vraiment coincé à supposer que les noms de fichiers seront sûrs comme stdout à trouver (ce que vous avez prouvé qu'ils ne sont pas simplement en posant cette question), alors mettez les noms de fichiers entre guillemets. Cela fonctionnera :
find . -name \*.pdf -print | awk '{cmd=sprintf("pdftotext \"%s\"", $0);system(cmd);}'
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.