Per*_*ulf 3 shell bash xargs awk
假设我有以下 bash shell 脚本:
#!/bin/bash
export count=0;
for i in `ls ./mydoc` ;do
pdfinfo ./mydoc/$i | egrep Pages |awk {'print $2'} |xargs -+ $count ;
^^^^^^^^^^^^^^^^^
done;
echo $count;
Run Code Online (Sandbox Code Playgroud)
它列举了每个 pdf 文件的页面,但我不知道如何将它们相加。!!!!!!
只需在 awk 中完成,忘记 xargs。
awk '{total += $2} END {print total}'
Run Code Online (Sandbox Code Playgroud)
但是您只需要运行 awk 一次,并将所有循环的输出通过管道传输到其中。为什么不也消除单独的 grep ......
for i in mydoc/* ; do
pdfinfo $i
done | awk '/^Pages/ { total += $2 } END { print total }'
Run Code Online (Sandbox Code Playgroud)