Если бы не огромное количество фотографий, вы могли бы использовать TeX/LaTeX для создания PDF. Тогда вы все еще можете получить тот же результат (pdf изображений )без проблемы сбоя конвертера. Ограничения файлов в TeX должны быть только вашей системой (аппаратное обеспечение + ОС)
Но я думаю, вы могли бы использовать сценарий оболочки для написания TeX:
0)
mkdir convert
pushd convert
PATH=convert:$PATH /* keep everything in one directory for tidyness.*/
1 )сделать шаблон
1.1 )Я уверен, что есть способ выполнить этот шаг за один раз, заменив имя изображения переменной и вставив, а не добавляя, и отформатировав $FOO, чтобы иметь правильные начальные 0, но следующее это только то, что я знаю.
1.2 )Шаблон необходимо разделить, чтобы сценарий мог вставить имя файла
1.3 )nano tmplt1 / *или редактор по вашему выбору */
/* white space line */
\begin{figure}[h!]
\includegraphics[width=0.5\linewidth]{
/* at this point the script will insert $FOO, the file name variable */
1.3.1 )Однако ваши файлы идут 0001.miff … 0010.miff … 0100.miff … 2000.miff. Т.е. переменное количество ведущих нулей. Обходной путь :4 версии tmplt1 :tmplt1 -9, tmplt10 -99, tmplt100 -999, tmplt1000 -2000. Tmplt1 -9 концов «...width]{000» (т.е. добавить 3 0 ); tmplt10 -99 заканчивается "...width]{00" (т.е. добавить 2 0 ).100 -999 добавляет 1 ноль, а 1000 -2000 совпадает с tmplt1
1.4 )следующая часть шаблона :nano tmplt2 / *OEOYC */
.miff}
\caption{ /* if you want to caption, otherwise skip to tmplt3.
Same again, script will insert $FOO here */
1.5 )следующая часть шаблона :nano tmplt3 / *OEOYC */
}
\label{f: /*if you want them labelled which is actually
a index/reference for the text to refer to, not a caption.
Same again, the script will insert $FOO here. If you do not
want labels, skip to tmplt4*/
1.6 )следующий шаблон :nano tmplt4 / *OEOYC */
}
\end{figure}
2 )сделать начало файла :nano head / *OEOYC */
\documentclass{article} /* Or more suitable class */
\usepackage{graphicx}
\begin{document}
/* white space line*/
3 )конец файла :нанофут / *OEOYC */
\end {document}
4 )сделать скрипт :nano loader / *OEOYC */
#! /bin/bash
cat head > out.pdf
for FOO in {1...9}
do
cat tmplt1-9 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt2 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt3 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt4 >> out.pdf
done
for FOO in {10...99}
do
cat tmplt10-99 >> out.pdf /* this looks like a lot but
is actually copy-paste of first block, just add relevant 0's and 9's */
echo "$FOO" | cat >> out.pdf
cat tmplt2 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt3 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt4 >> out.pdf
done
for FOO in {100...999}
do
cat tmplt100-999 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt2 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt3 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt4 >> out.pdf
done
for FOO in {1000...2000}
do
cat tmplt1000-2000 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt2 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt3 >> out.pdf
echo "$FOO" | cat >> out.pdf
cat tmplt4 >> out.pdf
done
cat foot >> out.pdf
5 )сделать скрипт исполняемым :chmod u+x loader
5.1 )После тестирования я обнаружил, что каждый раз, когда вставляется $FOO, он распределяется на 3 строки. Я не знаю никакого обходного пути, кроме входа в сценарий и ручного удаления возврата каретки. По крайней мере, на все 2000 фото всего 36
6 )скрипт вызова :загрузчик
7 )скомпилировать TeX :pdflatex out.pdf
string=$(cat pom.xml | grep developerConnection | sed -e s/\<developerConnection\>scm:git:ssh://g)
echo string
echo $string
developerConnection=$(echo ${string//[[:blank:]]/} | cut -c 3- | sed s/developerConnection//g | head -c-4)
echo developerConnection
developerConnection=$(echo $developerConnection| sed 's/gitlab.tools.russianpost.ru\//gitlab.tools.russianpost.ru:/g')
echo developerConnection
Регулярное выражение должно не использоваться для синтаксического анализа данных xml/html. Данные разметки не «обязаны» хранить теги или текст содержимого в одной строке.
Используйте правильные парсеры xml/html, такие как xmllint
илиxmlstarlet
:
$ xmllint --xpath 'scm/developerConnection/text()' pom.xml
scm:git:ssh://git@gitlab.com:anton_patsev/maven-release-example3.git