Perl был изобретен для этого:
perl -pi -e 's/foo/bar/g;' *.txt
Любой нормальный s///шаблон в тех одинарных кавычках. Можно сохранить резервное копирование с чем-то вроде этого:
perl -pi.bak -e 's/foo/bar/g;' *.txt
Или конвейер:
cat file.txt | perl -ne 's/foo/bar/g;' | less
, Но это - действительно задание большего количества sed.
LaTeX не имеет однозначного преобразования в PDF. Что касается вашего первого вопроса, я считаю, что такое преобразование технически возможно, но я не верю, что приложение для этого еще существует. Подобно тому, как ассемблер можно декомпилировать обратно на язык высокого уровня, вероятно, есть способ сделать это. Однако - pdf разрешено содержать все виды данных - чертежи AutoCAD, графику в формате JPEG, файлы шрифтов, формы, цифровые подписи и т. Д. LaTeX не знает, что это такое. Итак, ответ на второй вопрос: нет - нет способа извлечь эквивалентный LaTeX из любого документа PDF.
Краткая версия: Нет.
Длинная версия: это очень похоже на декомпиляцию: технически можно, но это потребует множества догадок и эвристики.
Я не знаком с внутренностями PDF, но, скорее всего, он установит шрифты / размеры / положение напрямую , вместо определения формата и применения его к заголовкам и т.п., как в LaTeX.
Он может работать с texmacs , который включает импорт файлов pdf.
См. Мой ответ на связанный вопрос ( как преобразовать DVI в текс? )
Чтобы уточнить - нет необходимости, чтобы символы были в порядке чтения ( Я нашел PDF-файлы, которые являются частью sdrawkcab sdaer txet (и полагаются на координаты). Это очень сложно восстановить, поскольку это может зависеть от показателей шрифта. Которые могут использовать ужасный протокол ASCII86.
Это возможно только в том случае, если вы встроите источник документа в файл PDF. Для этого см. пакет прикрепленного файла .
Лучший способ извлечения данных из файлов pdf (из-за его сложного формата) - открыть их с помощью Adobe Illustrator. Затем преобразуйте файл pdf в файл svg и используйте библиотеку парсера svg, написав для себя сложный код.
Одной из эффективных библиотек парсера svg является batik
(для Linux довольно сложно преобразовать pdf в svg: calcmaster.net/personal_projects/pdf2svg/)
PS Я с тех пор много пытаюсь найти решение вашей второй части вашего вопроса но я выяснил в таких книгах, как "Визуализация данных, Бен Фрай, О'Рейли" этот pdf, особенно Adobe pdf, сложен для синтаксического анализа, поэтому вместо этого используйте svg parser lib.