次のスクリプトは一時ファイル "data.txt"を使用し、それを再利用する前にここにいくつかのコンテンツを追加します。 (実際にPDFにいくつかのメタデータを追加しました。)
#!/bin/bash
PDFTK="/app/bin/pdftk"
#PDFTK="pdftk"
$PDFTK $1.pdf dump_data output data.txt
cat >> data.txt << EOF
InfoBegin
InfoKey: Myproperty
InfoValue: Myvalue
EOF
$PDFTK $1.pdf update_info data.txt output $1-$2.pdf
dump_dataとupdate_infoはどちらも標準出力から書き込みまたは読み取ることができます(man pdftkを参照)。
bash-gurus:ファイルを生成せずにコードを書き換える方法は?
pdftk-gurus:もっと良い方法はありますか?次へ追加キーと値のペア?
ありがとう、バスター。
答え1
これが使用されるため、bash
プロセス置換を使用できます。
"$PDFTK" "$1.pdf" update_info <( "$PDFTK" "$1.pdf" dump_data output; cat <<EOF
InfoBegin
InfoKey: Myproperty
InfoValue: Myvalue
EOF
) output "$1-$2.pdf"
pdftk
ユーティリティの場合、引数は最初の呼び出しの出力とここにある文書の内容を<( ... )
含むファイルとして扱われます。pdftk
また、変数を引用する必要があります(」bash / POSIXシェルで変数を引用することを忘れてしまうセキュリティリスク")。