我正在尝试监视应用程序服务器中的一些挂起线程,我得到了这一行。[5/30/16 11:31:18:501 CDT] 00000655 ThreadMonitor W WSVR0606W: Thread "MessageListenerThreadPool : 38" (00000655) was previously reported to be hung but has completed. It was active for approximately 964450 milliseconds. There is/are 0 thread(s) in total in the server that still may be hung.
我需要在"有/有 0 个线程"中获取 0。
我试图用切割来分割它,但一切都一团糟。我也尝试使用分隔符,但字符串太长。
如何拆分?
您可以使用sed
来捕获"有/是"和"线程"之间的数字并删除其他所有内容,如下所示:
sed 's/.*There is/are ([0-9]+) thread.*/1/' file
sed -nr 's/.*are ([0-9]+) thread.*/1/p' file
-r, --regexp-extended
use extended regular expressions in the script.
-n, --quiet, --silent
suppress automatic printing of pattern space