更新 需要澄清的是,Jon8RFC-LT和DOMAIN也仅是动态内容的通用示例,与IP地址和MAC地址相似;nmblookup根据IP地址检索并显示完全动态的内容。如果使用awk,则需要从nmblookup中提取4个动态值:IP、主机名/资产名称、域名和MAC地址。抱歉造成困扰,我已更新代码以使其更加清晰。
我已经搜索并使用我的Linux书籍几天了,但无法找到我需要的awk/gawk/grep/egrep/sed(我认为我需要其中一个或多个,优雅地)。在bash脚本中,我运行:
su_nmblookup=$(nmblookup -A $ipaddress)
这个函数返回
WARNING: The "idmap backend" option is deprecated
added interface eth0 ip=a07d::a07d:a07d:a07d:a07d%eth0 bcast=b57d::ffff:ffff:ffff:ffff%eth0 netmask=ffff:ffff:ffff:ffff::
added interface eth1 ip=b57d::b57d:b57d:b57d:b57d%eth1 bcast=a07d::ffff:ffff:ffff:ffff%eth1 netmask=ffff:ffff:ffff:ffff::
added interface eth0 ip=234.234.234.234 bcast=12.12.12.12 netmask=255.255.0.0
Socket opened.
Looking up status of 123.123.123.123
JON8RFC-LT <00> - B <ACTIVE>
DOMAIN <00> - <GROUP> B <ACTIVE>
JON8RFC-LT <20> - B <ACTIVE>
DOMAIN <1e> - <GROUP> B <ACTIVE>
MAC Address = 4F-A2-4F-A2-4F-A2
我最好的解决办法是使用以下代码进行砍掉:
display=${su_nmblookup/#*Looking/\Looking}
Looking up status of 123.123.123.123
JON8RFC-LT <00> - B <ACTIVE>
DOMAIN <00> - <GROUP> B <ACTIVE>
JON8RFC-LT <20> - B <ACTIVE>
DOMAIN <1e> - <GROUP> B <ACTIVE>
MAC Address = 4F-A2-4F-A2-4F-A2
然而,我想知道如何返回这些清理过的格式之一。我想学习使用grep / awk / sed从这两个示例中提取数据的工作原理,其中一个保留格式,另一个仅使用换行符。由于格式和gt / lt符号的影响,即使在引用/编码方面,我也花了很多时间才能正常工作!
或者,简单地说Looking up status of 123.123.123.123 JON8RFC-LT DOMAIN 4F-A2-4F-A2-4F-A2
感谢您的帮助!JON8RFC-LT DOMAIN 123.123.123.123 4F-A2-4F-A2-4F-A2
JON8RFC-LT
在输出中想要的是输入中的第一个JON8RFC-LT
,还是第二个,或者它们总是相同的?对于DOMAIN
也是同样的问题。 - a5hksed
只能用于那个...尽管它远远是最常见的用途,但它实际上比那更有能力(虽然并不总是简单易懂/使用)... - twalbergsed
有时候也可以用来玩 code-golf ;-) - Digital Trauma