【发布时间】:2018-08-28 03:51:53
【问题描述】:
我知道有很多关于这个话题的问题。但我需要根据情况提供帮助。当我尝试在选项中放置超过 3 种模式时, 我会得到这样的错误......
sed: -e expression #1, char 24: unknown command: `,'
我只想打印括号中的单词..
这里是 sed 命令
sed -n '/QUEUE/,/CURDEPTH/,/DESCR/ {
s/QUEUE(\(.*\))\(.*TYPE(.*)\)/\1/
s/QUEUE(\(.*\))/\1/
s/TYPE(.*).*CURDEPTH(\(.*\))/\1/
s/CURDEPTH(\(.*\))/\1/
s/TYPE(.*).*DESCR(\(.*\))/\1/
s/DESCR(\(.*\))/\1/
p
}
' | awk '{ if ((NR %2) == 0) { printf("%s\n", $0) } else { printf("%s", $0) } }'
还有输出...
test.msg.queue 0) DESCR(TQ : 001
谢谢...
样本输出
1 : dis q(test.msg.queue) CURDEPTH DESCR
AMQ0086: Display Queue details.
QUEUE(test.msg.queue) TYPE(QLOCAL)
CURDEPTH(0) DESCR(TQ : 001)
【问题讨论】:
-
如果您添加少量示例行(例如 3-5)并完成示例的预期输出,这将有所帮助 - 这将有助于增加您的问题的清晰度,并有助于在回答之前测试解决方案..来自你发布的内容,看起来你需要
/QUEUE\|CURDEPTH\|DESCR/ -
/QUEUE/,/CURDEPTH/,/DESCR/应该指的是什么“范围”?每一行都以包含QUEUE的行开头,然后结束……什么时候?您能描述一下您的目标要实现的目标吗? -
感谢 ghoti 的帮助,我的目标是让文本脱离括号.. Sundeep 解决方案似乎有效,但输出仍然与“test.msg.queue 0) DESCR(TQ:001”相同,我想我帮助检查 X_X