作者erspicu (lpo)
看板perl
标题[问题] 如何抓stdout
时间Wed Nov 8 13:19:32 2006
这是我从网路上学来的,但是似乎不一定管用,
只要是要当"前导程式"抓取一些程式列印出的画面面,
好比说下面,可以执行dir命令,然後输出到out,接着再读取出来
$th = 0;
open out,"dir |";
while (defined($line = <out>))
{
print "[$th]$line\n";
$th++;
}
close(out);
<>
问题是这样不一定管用...很多程式会列印出的东西(部分部分的),
不是直接给你列印在萤幕,就是莫名其妙既没有印在萤幕上,
stdout也抓不到.
像我现在要抓mencoder的编码资讯,就抓不到,我用 > 直接把资讯导到out.txt上,
.
.
.
Pos: 0.0s 1f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.000 [0:0]
Pos: 0.0s 2f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.000 [0:0]
Pos: 0.1s 3f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.000 [0:0]
Pos: 0.1s 4f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.000 [0:0]
Pos: 0.1s 5f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.000 [0:0]
Pos: 0.1s 6f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.000 [0:0]
.
.
.
...代表省略的意思,我需要的
Pos: 0.1s 5f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.000 [0:0]
资讯就是抓不到,有人可以跟我说该怎样抓 "5f" 中的数值变数
(编码到第几张frame的编号), "0%" (进度) , "0.00fps" (编码目前速度)吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.129.153.242
1F:推 LiloHuang:Regular Expression 看看乎? 11/09 02:20
2F:推 erspicu:是根本抓不到部分的STDOUT,抓到的话,比对我会处理,不过 11/09 02:25
3F:→ erspicu:有人能直接说的话比较快,不然还要翻一下书 11/09 02:26
4F:→ erspicu:抓不到的STDOUT,直接印到萤幕上,或是根本消失 11/09 02:31