다음 지시어(작동하는)의 출력을 변수에 넣는 데 문제가 있습니다.
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 파일 메타데이터의 요약을 가져오는 또 다른 훌륭한 도구입니다. 각 개별 페이지의 세부 정보가 아닌 구문 분석하기 쉬운 형식으로 파일 메타데이터(제목, 주제, 작성자, 키워드, 페이지 수 등)만 제공합니다(따라서 대용량 PDF 파일의 경우 훨씬 더 빠릅니다).
VARIABLE="$(pdfinfo file.pdf| awk '/Pages/ {print $2}')"
echo "$VARIABLE"