![](/img/trans.png)
[英]Why is my Mongoose query within a loop only returning the first result?
[英]Why is 'sh -c' returning a different result from my actual command?
我正在尝试通过命令行获取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
为什么我得到不同的输出?
sh -c
命令用双引号引起来,这将扩展$2
,该$2
可能为空,因此awk
命令变为print
,它会打印整行。 您可以转义$
以防止其扩展:
sh -c "pdfinfo '/tmp/temp.pdf' | grep Pages: | awk '{print \$2}'"
顺便说一句, awk
可以进行模式匹配,因此不需要grep
和awk
:
pdfinfo "/tmp/temp.pdf" | awk '/Pages:/ {print $2}'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.