![如何对 echo 命令输出中的值进行排序?](https://linux22.com/image/124769/%E5%A6%82%E4%BD%95%E5%AF%B9%20echo%20%E5%91%BD%E4%BB%A4%E8%BE%93%E5%87%BA%E4%B8%AD%E7%9A%84%E5%80%BC%E8%BF%9B%E8%A1%8C%E6%8E%92%E5%BA%8F%EF%BC%9F.png)
我有一个命令
pr -m <(echo -n "dis q(*) where (IPPROCS gt 1)" |
runmqsc UFISMQ |grep QUEUE |
awk '{print $1}' |
cut -c6-100) <(echo -ne "dis q(*) where (IPPROCS gt 1)" |
runmqsc UFISMQ |grep IPPROCS |
cut -c11-15 |sed "1 d") |
awk 'NR>=6&&NR<=13' |
该命令帮助我找到连接到 MQ 队列的应用程序数量。输出是这样的
(SYSTEM.BROKER.CONTROL.QUEUE) (3)
(TO_UFIS) (18)
(UFIS_ATC_IN) (2)
(UFIS_BELT_IN) (2)
(UFIS_COUNTER_IN) (2)
(UFIS_FLIGHT_IN) (2)
(UFIS_OTHERS_IN) (2)
(UFIS_TRIGGER_IN) (2)
问题
现在我想对输出进行排序,并仅当其中一个值是 时才触发邮件警报(0)
。这意味着没有应用程序连接到 MQ。
如何对上述输出进行排序以找到(0)
价值?
答案1
您可以使用grep
(0) 值来触发邮件并使用该命令sort
对特定列输出上的输出进行排序。
例如:
df -h | sort -nk5
将对键 5(即 )进行“数字”(非字典顺序)排序Use%
。