用awkparsingjava控制台输出

我试图用awk来parsing一个由java应用程序生成的输出,但是它不工作。 看来pipe道后面的命令无法获取/查看Java应用程序抛出的数据。

我正在执行下面的命令(使用命令生成的返回值):

[root@localhost]# java -jar jmxclient.jar usr:pass host:port java.lang:type=Threading ThreadCount 06/11/2010 15:46:37 -0300 org.archive.jmx.Client ThreadCount: 103 

我需要的只是string的最后部分。 所以我尝试使用awk(在行尾使用pipe道|awk -F ':' '{print $4}'

 [root@localhost]# java -jar jmxclient.jar usr:pass host:port java.lang:type=Threading ThreadCount|awk -F ':' '{print $4}' 

但输出不被parsing。 它引发整个string: 06/11/2010 15:46:37 -0300 org.archive.jmx.Client ThreadCount: 103

我也|cut -f4 -d":"|cut -f4 -d":"得到相同的结果:string不被parsing。

所以我的问题是,我如何parsing输出才能得到string末尾的数字?

TIA,

短发

就像伊格纳西奥·巴斯克斯·艾布拉姆斯(Ignacio Vazquez-Abrams)说的那样,它可能会更加直线。 而且,有一个awk技巧可以让你的生活更轻松: $NF ,这是最后一个字段。 因此,我会做这样的事情:

 java -jar jmxclient.jar usr:pass host:port java.lang:type=Threading ThreadCount 2>&1 | awk -F: '{print $NF}' 

日志可能正在输出到stderr。

说明bash