我有 100 多个 rar 文件,我想使用 findexec
命令提取这些文件。我想查看通常的 rar 输出,以便我可以监视其进度,并将输出通过管道传输到grep
然后再传输到wc
以计算“所有正常”行(如果成功提取存档,rar 将打印)。
我使用以下命令(没有最终wc -l
组件)进行了测试,该命令旨在查找 2 个 rar 档案,但它只是打印了 4 行“一切正常”,提取的 2 个 rar 档案中的每一个都打印了 2 行。
$ find -iname 'TestNum*.rar' -execdir rar e '{}' \; | tee - | grep -i 'All OK'
All OK
All OK
All OK
All OK
Note: 2 archives extracted, but 4 'All OK' lines, and none of rar's output.
我想要的是这样的:
$ find -iname 'TestNum*.rar' -execdir rar e '{}' \; | ... ???
Extracting from TestNum1.rar
All OK
Extracting from TestNum2.rar
All OK
2
最后一行只有 2 是wc -l
输出,显示“一切正常”的实际匹配数。
这可能吗?谢谢。
编辑@ 2018-04-25 19:21
我刚刚意识到我可以做以下工作正常:
find . -iname 'TestNum*.rar' -execdir rar e '{}' \; | tee rar_out
grep -i 'All OK' rar_out | wc -l
我最初问的可能还是出于兴趣?