Мне нужно изменить заголовок на многих файлах PDF.Pdftk прекрасно работает, и я попытался создать bash-скрипт (pdftitle), чтобы сделать его за один проход:
#!/bin/bash
newtitle=$2
pdftk "$1" data_dump output "$1".data.txt;
sed 's/^InfoKey:\sTitle\nInfoValue:\s.*/InfoKey:\sTitle\nInfoValue:'"$newtitle/" "$1".data.txt > "$1".data.fixed.txt;
pdftk "$1" update_info *.data.fixed.txt output "$1".fixed;
mv "$1".fixed "$1";
rm -f ./*.txt
exit;
Так что в клике я бы ввел
$> pdftitle mypdf.pdf "Новый заголовок"
Файл data.txt, создаваемый pdftk, имеет несколько строк, но цели - только две соответствующие строки:
...
InfoBegin
InfoKey: Author
InfoValue: Not Me
InfoBegin
InfoKey: Title
InfoValue: Microsoft Word - Old Title.doc
InfoBegin
InfoKey: Creator
InfoValue: PScript5.dll Version 5.2
...
Из которых необходима следующая строкаподлежит замене:
...
InfoKey: Title
InfoValue: Relevant New Title
...
Нет сообщений об ошибках, но заголовок остается без изменений.Так что, похоже, у sed есть проблемы здесь, но я не могу понять, где и как.
Любая помощь будет принята с благодарностью.