páginas do arquivo pdf em variável

1

Eu tenho um problema em colocar a saída das seguintes instruções (instruções de trabalho) na variável:

pdftk file.pdf dump_data | grep NumberOfPages | awk '{print $2}'

quando faço por exemplo:

VARIABLE=$( pdftk file.pdf dump_data | grep NumberOfPages | awk '{print $2}' ) | echo $VARIABLE 

não me mostra o valor da variável ... Alguém pode dizer o que estou fazendo errado? Obrigado

    
por Pamele 29.12.2017 / 22:26

3 respostas

3

Você deve usar:

; echo $VARIABLE

Em vez do último canal.

    
por 29.12.2017 / 22:29
1

Uso:

$ VARIABLE=$( pdftk file.pdf dump_data | grep NumberOfPages | awk '{print $2}' ) ; echo "$VARIABLE" 

O problema é usar um pipe ( | ) que não funciona com eco.

    
por 29.12.2017 / 22:35
0
  1. Você não precisa canalizar a saída de grep para awk . O awk pode fazer o mesmo tipo de padrão de expressão regular correspondente ao grep (e muito mais).

  2. Você precisa aspas duplas quando as usa. E substituições de comandos.

  3. Como outros já apontaram, o caractere pipe não encerra as instruções. Use uma nova linha ou ; .

Juntando tudo:

VARIABLE="$(pdftk file.pdf dump_data | awk '/NumberOfPages/ {print $2}')"
echo "$VARIABLE"

BTW, pdfinfo de poppler-utils é outra boa ferramenta para obter um resumo dos metadados de um arquivo PDF (incluindo a página contagem). Ele fornece apenas os metadados do arquivo (título, assunto, autor, palavras-chave, contagem de páginas, etc.) em um formato facilmente analisado, sem detalhes sobre cada página individual (portanto, é notavelmente mais rápido em arquivos PDF grandes).

VARIABLE="$(pdfinfo file.pdf| awk '/Pages/ {print $2}')"
echo "$VARIABLE"
    
por 30.12.2017 / 06:15