Wiem, że mogę konwertować pliki pdf do plików tekstowych jeden po drugim w następujący sposób:
$ pdftotext filename.pdf
Ale czy istnieje jedno polecenie, które dokonałoby tej konwersji bez określania osobnych nazw plików, aby przekonwertować je wszystkie?
Widzę tutaj, na Wikipedii , że „Symbole wieloznaczne (*), na przykład $ pdftotext * pdf, do konwersji wielu plików, nie mogą być używane, ponieważ pdftotext oczekuje tylko jednej nazwy pliku”.
xargs
jest często szybkim rozwiązaniem do wielokrotnego uruchamiania tego samego polecenia za każdym razem z niewielką zmianą. Ta-n1
opcja zapewnia, że tylko jeden plik pdf jest przekazywany do pdftotext na raz.Edycja: Jeśli martwisz się spacjami w nazwach plików i tym podobne, możesz użyć tej alternatywy:
źródło
ls *.pdf | xargs -L1 -I% pdftotext % %.txt
napisz skrypt bash
lub wpisz polecenie w jednym wierszu w następujący sposób:
for f in *.pdf; do pdftotext "$f"; done
Mam nadzieję, że to pomoże. Nie mam dużej grupy plików .pdf do przetestowania tego, ale używam tej strategii do konwertowania plików .flac na pliki .ogg.
źródło
Muszę najpierw podziękować Samowi i Ryanowi Thompsonowi, a także wszystkim innym osobom odpowiadającym - ponieważ moja odpowiedź jest niczym innym, jak tylko odmianą dotyczącą możliwości dodania ich rozwiązań do niestandardowych działań Thunara:
tak jak każde polecenie terminalu, polecenie konwersji na tekst wszystkich plików pdf w folderze można umieścić na liście niestandardowych działań w menedżerze plików Thunar
Jest takie polecenie
find . -name '*.pdf' -print0 | xargs -0 -n1 pdftotext
(pochodzące od Ryana Thompsona ), którego wolę używać, ale ma paskudny obrót ... patrz poniżej ...... to zabawne polecenie, którego należy używać ostrożnie: służy do konwersji na tekst wszystkich plików pdf w folderze, w którym jest uruchamiany, więc jeśli zostanie zwolniony przez pomyłkę w folderze domowym, będzie miał trochę niechcianych efekty: wszystkie twoje pliki pdf zostaną przekonwertowane na tekst!
(Przetestowałem to w ten sposób: utworzyłem folder o nazwie „test” na pulpicie, aw nim plik pdf i serię folderów w folderach (
/Desktop/test/a/b/c/e/f/g/h/i
), z których każdy zawiera ten sam plik pdf. Uruchomienie tego polecenia/Desktop/test
przekonwertowało wszystkie pliki pdf na pliki w formacie folder „i”).(Z zadowoleniem przyjmuję komentarze na temat dostosowania tego polecenia, aby uniknąć tego ryzyka).
Zastąpienie go innym (
for file in *.pdf; do pdftotext "$file" "$file.txt"; done
) pochodzącym od Sama pozwala uniknąć tego problemu.Ale w niektórych przypadkach można sobie życzyć dokładnie tego, co robi rozwiązanie Ryana!
źródło
find
wyszukiwania poleceń w podkatalogach-maxdepth 1
. Również, gdy wprowadzenie go do akcji niestandardowych funkcji thunar użytkownika, należy prawdopodobnie zastąpifind .
wfind %F
celu umożliwienia Thunar prawidłowo przechodzić ścieżki wybranych katalogów.Ten jeden wyjścia sample.pdf.txt .
Próbowałem użyć tego, jak sugerują user2357111317, i dołączam także -layout, aby zachować układ tekstu
źródło