我意识到许多在linux上运行良好或在linux中完成工作的命令将在UNIX或基于UNIX的系统上产生完全不同的输出.
runmqsc命令的输出如下所示:
5724-H72 (C) copyright IBM Corp. 1994,2009. ALL RIGHTS RESERVED.Starting MQSC for queue manager CNUMQ02B. 1 : disPLAY QLOCAL(*) CURDEPTHAMQ8409: display Queue details. QUEUE(ADEXA.AOM.REPLY.MR.QL) TYPE(QLOCAL) CURDEPTH(0) AMQ8409: display Queue details. QUEUE(ADEXA.AOM.REPLY.QL) TYPE(QLOCAL) CURDEPTH(0) AMQ8409: display Queue details. QUEUE(ADEXA.ERROR.QL) TYPE(QLOCAL) CURDEPTH(0) AMQ8409: display Queue details. QUEUE(ADEXA.FACT.OUT.QL) TYPE(QLOCAL) CURDEPTH(0)AMQ8409: display Queue details. QUEUE(ADW.REMAN.XREF.ERR.QL) TYPE(QLOCAL) CURDEPTH(14)AMQ8409: display Queue details. QUEUE(SAPNA.MESS.CRITICAL.CLASS.RESUME.QL) TYPE(QLOCAL) CURDEPTH(123)One MQSC command read.No commands have a Syntax error.All valID MQSC commands were processed.
我基本上需要做的只是显示队列的名称,空格,然后是同一行上的队列深度,没有尾随空格,文件的开头或结尾没有换行符,因此它将类似于以空格作为分隔符的csv文件.我还需要过滤掉队列深度等于0的队列,因此输出将如下所示:
ADW.REMAN.XREF.ERR.QL 14
正如我所说,我在linux上尝试了很多命令,但是我对UNIX和linux上的命令和标志实际上大致相同有所了解,并且我的经理今天想要这个,所以如果你有机会读到这个我要求你至少指导我用什么来尝试解决它:)谢谢.
这是我在linux中写的:
head -n -3 "" | tail -n +6 | sed '/AMQ8409: display Queue details./d' | sed 's/TYPE(QLOCAL)//g' | tr -d ' \t\r\f' | awk 'NR%2{printf "%s ",解决方法 试试这个更简单的命令.. 总结sed -n -e 's/.*QUEUE(\([^)]*\)).*//p' -e 's/.*CURDEPTH(\([0-9]*\)).*//p' \ | paste -d ' ' - - \ | grep -v ' 0$';next;}1' | sed '/CURDEPTH(0)/d' | awk '{gsub(/QUEUE(/,""); gsub(/CURDEPTH(/,""); gsub(/)/,""); print}' |sort -nk2
以上是内存溢出为你收集整理的linux – UNIX(AIX)脚本,仅使用awk或其他文件处理实用程序处理文件全部内容,希望文章能够帮你解决linux – UNIX(AIX)脚本,仅使用awk或其他文件处理实用程序处理文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)