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 파일 메타데이터의 요약을 가져오는 또 다른 훌륭한 도구입니다. 각 개별 페이지의 세부 정보가 아닌 구문 분석하기 쉬운 형식으로 파일 메타데이터(제목, 주제, 작성자, 키워드, 페이지 수 등)만 제공합니다(따라서 대용량 PDF 파일의 경우 훨씬 더 빠릅니다).

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

관련 정보