.txt
を使用してファイル内のPDFのメタデータを抽出し、各ブックマークの値を整数だけ減らそうとpdftk
します。次の行がBookmarkPageNumber
あります.txt
。
BookmarkBegin
BookmarkTitle: Preface
BookmarkLevel: 1
BookmarkPageNumber: 10
BookmarkBegin
BookmarkTitle: Author
... and so on
これを行うには、sedの代替コマンドを使用しようとしています。これが今まで私が持っているものです。
// $1 is the source .txt file; $2 is the decrement
// __ is a placeholder for the variable with the original value
cat $1 | sed "s/BookmarkPageNumber: [0-9]*/BookmarkPageNumber: `expr __ - $2`/" | cat > metadata.txt
__
元の値を変数に入れてから、同じsed式でプレースホルダをどのように置き換えることができますか?
ベストアンサー1
これにはawk
算術演算をサポートしているので、使用することをお勧めします。
cat $1 | awk -v d=$2 '/BookmarkPageNumber:/{$2-=d}1'