次のディレクティブ(アクション)の出力を変数に入れるのに問題があります。
pdftk file.pdf dump_data | grep NumberOfPages | awk '{print $2}'
たとえば、次のような場合:
VARIABLE=$( pdftk file.pdf dump_data | grep NumberOfPages | awk '{print $2}' ) | echo $VARIABLE
変数の値は表示されません。誰かが私が間違っていることを教えてもらえますか?ありがとう
答え1
以下を使用する必要があります。
; echo $VARIABLE
最後のチューブの代わりに。
答え2
使用:
$ VARIABLE=$( pdftk file.pdf dump_data | grep NumberOfPages | awk '{print $2}' ) ; echo "$VARIABLE"
問題は、|
echoと一緒に使用できないパイプ()を使用していることです。
答え3
grep
出力をにパイプする必要はありませんawk
。 awkはgrepと同じ種類の正規表現パターンマッチングを実行できます。変数を使用するときは、二重引用符で囲む必要があります。そしてコマンドの置き換え。
他の人がすでに指摘したように、パイプ文字は文を終了しません。改行を使用または
;
変更します。
総合してみると:
VARIABLE="$(pdftk file.pdf dump_data | awk '/NumberOfPages/ {print $2}')"
echo "$VARIABLE"
pdfinfo
ところで、ポプラツールページ番号を含むPDFファイルのメタデータの概要を取得するもう1つの素晴らしいツールです。各個々のページの詳細ではなく、解析しやすい形式でファイルメタデータ(タイトル、トピック、作成者、キーワード、ページ数など)のみを提供します(したがって、大容量PDFファイルの場合ははるかに高速です)。
VARIABLE="$(pdfinfo file.pdf| awk '/Pages/ {print $2}')"
echo "$VARIABLE"