PDFファイルのページを変数に入れます。

PDFファイルのページを変数に入れます。

次のディレクティブ(アクション)の出力を変数に入れるのに問題があります。

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

  1. grep出力をにパイプする必要はありませんawk。 awkはgrepと同じ種類の正規表現パターンマッチングを実行できます。

  2. 変数を使用するときは、二重引用符で囲む必要があります。そしてコマンドの置き換え。

  3. 他の人がすでに指摘したように、パイプ文字は文を終了しません。改行を使用または;変更します。

総合してみると:

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"

関連情報