我试图通过命令行获取PDF文件中的页数。
pdfinfo "/tmp/temp.pdf" | grep Pages: | awk '{print $2}'
产生
3
在Node.js中,我需要使用' sh'因为管道。
但是
sh -c "pdfinfo '/tmp/temp.pdf' | grep Pages: | awk '{print $2}'"
产生
Pages: 3
为什么我会得到不同的输出?
答案 0 :(得分:2)
$connection
命令是双引号,这将扩展可能为空的sh -c
,因此$2
命令变为awk
,它打印整行。你可以逃避print
以防止它被扩展:
$
顺便说一下,sh -c "pdfinfo '/tmp/temp.pdf' | grep Pages: | awk '{print \$2}'"
可以进行模式匹配,因此不需要awk
和grep
:
awk