Обработка .pdf файлов на заполненность страниц. Проблема в том, что файл на 80 страниц обрабатываю процессором E8400 за 22 сек., а на I7-2600 - за 19 секунд. 3-4 секунды - facepalm. Да, на одном ядре. Поэтому ищу способ запускать скрипт параллельно для обработки каждой страницы с выводом результата в отдельный файл для каждой страницы.
Есть два скрипта: mass_pdf.sh и script_pdf.sh.
Запуск ./mass_pdf.sh 456.pdf
#!/bin/bash
fullfile=$1
fname=$(basename $fullfile)
fbname=${fname%.*}
rm -f $fbname
n=$(gs -q -dNODISPLAY -c "("$1") (r) file runpdfbegin pdfpagecount = quit";)
n=$(($n+1))
SECONDS=0
for ((i=1; i < $n; i++))
do
./script_pdf.sh "$1" $i $i >> $fbname;
done
echo $SECONDS > "${fbname}_"
script_pdf.sh
#!/bin/bash
gs -q -dNOPAUSE -dBATCH -dFirstPage="$2" -dLastPage="$3" -sDEVICE=inkcov -o - "$1";
РЕШЕНИЕ: mass_pdf.sh:
#!/bin/bash
fullfile=$1
fname=$(basename $fullfile)
fbname=${fname%.*}
rm -f $fbname
n=$(gs -q -dNODISPLAY -c "("$1") (r) file runpdfbegin pdfpagecount = quit";)
SECONDS=0
seq $n | parallel ./script_pdf.sh "$1" {} {} >> $fbname
echo $SECONDS > "${fbname}_"
#!/slavaisu