如何对 echo 命令输出中的值进行排序?

如何对 echo 命令输出中的值进行排序?

我有一个命令

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%

相关内容