我的/etc/主机看起来如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.13.11 idm.myhost.com
192.168.13.10 dnsf.myhost.com
192.168.13.11 idm.myhost.com
192.168.13.10 dnsf.myhost.com
192.168.13.11 idm.myhost.com
192.168.13.10 dnsf.myhost.com
192.168.13.10 temp1.myhost.com我可以通过以下查询查询重复行:
print /files/etc/hosts/*/canonical["idm.myhost.com"]或者使用regex
defvar mypath /files/etc/hosts
print $mypath/*/*[.=~ regexp("dnsf.myhost.com")]但是我不能用一个简单的rm删除这些匹配的线条
rm /files/etc/hosts/*/canonical["idm.myhost.com"]问题是,augtool只是从节点中移除规范的叶子,而ipaddr则保持不变。它会导致保存函数返回错误。我不想使用bash脚本,我试图解决augeas本身的问题。协助,拜托..。
我找不到这个有用工具的完整教程或文档。我很感激有人能提出一份好文件。我搜索了所有的网站,并找到了一些简单的例子。
发布于 2020-09-04 20:39:37
表达式选择规范节点,而不是主机节点。如果要删除主机节点,则需要使用:
rm /files/etc/hosts/*[canonical="idm.myhost.com"]这将选择/files/etc/hosts下的任何条目,其canonical子节点具有值idm.myhost.com。
至于文档,有一个教程在Augeas的网站上,还有一些关于Augeas wiki的文档。
还有一个关于Augeas 在Youtube上的视频介绍。
我在大约7年前创建了写书,它可以仍然可以在网上找到,但从来没有选择完成它的时间。
https://stackoverflow.com/questions/63746737
复制相似问题