Você deve usar:
; echo $VARIABLE
Em vez do último canal.
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
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.
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).
Você precisa aspas duplas quando as usa. E substituições de comandos.
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"