2012-06-18 4 views
3

Je suis en train d'exécuter ce qui suit pour extraire le texte de tous les pdfscommande système awk avec des espaces dans les paramètres

find *.pdf | awk '{system("pdftotext "$0)}' 

mais dang il une personne fou mettre des espaces dans les noms de fichiers, comment puis-je faire face à cette doucement?

+1

Tirez sur la personne folle –

Répondre

3

Quel est le rôle de awk dans ce domaine? Peut-être que vous devriez laisser find exécuter les choses lui-même.

find . -name \*.pdf -exec /path/to/pdftotext {} \; 

Ou si vous êtes vraiment vraiment coincé avec en supposant que les noms de fichiers seront en sécurité que stdout à trouver (que vous avez, ils ne sont pas simplement prouvé en posant cette question), puis mettre les noms de fichiers entre guillemets. Cela fonctionnera:

find . -name \*.pdf -print | awk '{cmd=sprintf("pdftotext \"%s\"", $0);system(cmd);}' 
+0

slam front c'était simple, merci ghoti – knk

Questions connexes