linux – 在bash脚本中使用引号和空格的awk

linux – 在bash脚本中使用引号和空格的awk,第1张

概述我在接收到的snmp陷阱中的bash变量集中输出以下内容: echo $var Nov 27 16:20:34 witness logger: trap: vars: DISMAN-EVENT-MIB::sysUpTimeInstance = 0:6:10:29.06, SNMPv2-MIB::snmpTrapOID.0 = SNMPv2-SMI::enterprises.11.2.29.2.9 @H_419_1@ 我在接收到的snmp陷阱中的bash变量集中输出以下内容:

echo $var

Nov 27 16:20:34 witness logger: trap: vars: disMAN-EVENT-MIB::sysUpTimeInstance = 0:6:10:29.06,SNMPv2-MIB::snmpTrapOID.0 = SNMPv2-SMI::enterprises.11.2.29.2.90.0.10000002,SNMPv2 SMI::enterprises.11.2.29.2.90.1 = "Finished Number",SNMPv2-SMI::enterprises.11.2.29.2.90.2 = "Filter Cirteria: [called='3333']",SNMPv2-SMI::enterprises.11.2.29.2.90.3 = "Cleared",SNMPv2     SMI::enterprises.11.2.29.2.90.4 = "major Over-Flow alert on Finished Number for ['3333']",SNMPv2 SMI::enterprises.11.2.29.2.90.5 = "The Corresponding Metric Value is: 0.5",SNMPv2- SMI::enterprises.11.2.29.2.90.6 = "Over-Flow",SNMPv2-SMI::enterprises.11.2.29.2.90.7 = "Tue Nov 27 16:20:05 CET 2012"

我试图在变量中获得以下输出:

var1 = "Tue Nov 27 16:20:05 CET 2012"var2 = "Finished Number"var3 = "The Corresponding Metric Value is: 0.5"var4 = "Cleared"var5 = "major Over-Flow alert on Finished Number for ['3333']"

我想通过awk这样做

基于snmp OID:enterprises.11.2.29.2.90.4,enterprises.11.2.29.2.90.5,11.2.29.2.90.6等…

但似乎无法仅提取引用内容的内容“”

解决方法 看起来你想要匹配双引号内的所有字符串,这是用grep最简单的方法:

$echo $var | grep -o '"[^"]*"'"Finished Number""Filter Cirteria: [called=3333]""Cleared""major Over-Flow alert on Finished Number for [3333]""The Corresponding Metric Value is: 0.5""Over-Flow""Tue Nov 27 16:20:05 CET 2012"

说明:

-o只​​打印匹配行的部分.

"     # Match opening double quote[^"]* # Match anything not a double quote"     # Match closing double quote

希望这有助于您入门.

总结

以上是内存溢出为你收集整理的linux – 在bash脚本中使用引号和空格的awk全部内容,希望文章能够帮你解决linux – 在bash脚本中使用引号和空格的awk所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1027579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存