我是脚本世界的新手。我的要求是编写一个bash脚本,它将解析'/ usr / sbin / postqueue -p'的输出并获取邮件队列计数(最后一行中突出显示的数字)。
<Output of postqueue -p>
postqueue: warning: Mail system is down -- accessing queue directly
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
9F34D414BA0A 304 Wed Aug 3 11:50:01 <sender>
<recipient>
85F00414D434 304 Wed Aug 3 11:50:02 <sender>
<recipient>
0C5E2414D435 303 Wed Aug 3 11:50:03 <sender>
<recipient>
73C6041CCC47 304 Wed Aug 3 11:50:03 <sender>
<recipient>
-- 1 Kbytes in 4 Requests.
那么,我如何使用grep进行多行搜索?当我在网上搜索时,我了解了pcregrep但是我没有得到哪个包提供了这个二进制文件。 (我使用的是RHEL7)。我浏览了grep的手册,但找不到任何有趣的内容。
第二个问题是,如何在bash中使用正则表达式从最后一行提取邮件队列数?
我让它在Python中工作,但我想在bash中完成这项工作,因为我必须修改现有脚本才能使用此逻辑。
如果您有任何想法,请告诉我,谢谢。
答案 0 :(得分:0)
要从最后一行获取请求计数,我建议使用awk
:
/usr/sbin/postqueue -p | tail -n 1 | awk -F" " '{print $(NF-1)}'
对于pcregrep命令,您可以使用sudo yum whatprovides pcregrep
查看哪个包提供此命令