首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用augtool从/etc/主机移除多行

使用augtool从/etc/主机移除多行
EN

Stack Overflow用户
提问于 2020-09-04 19:02:13
回答 1查看 235关注 0票数 1

我的/etc/主机看起来如下:

代码语言:javascript
复制
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

我可以通过以下查询查询重复行:

代码语言:javascript
复制
 print /files/etc/hosts/*/canonical["idm.myhost.com"]

或者使用regex

代码语言:javascript
复制
defvar mypath /files/etc/hosts
print $mypath/*/*[.=~ regexp("dnsf.myhost.com")]

但是我不能用一个简单的rm删除这些匹配的线条

代码语言:javascript
复制
rm /files/etc/hosts/*/canonical["idm.myhost.com"]

问题是,augtool只是从节点中移除规范的叶子,而ipaddr则保持不变。它会导致保存函数返回错误。我不想使用bash脚本,我试图解决augeas本身的问题。协助,拜托..。

我找不到这个有用工具的完整教程或文档。我很感激有人能提出一份好文件。我搜索了所有的网站,并找到了一些简单的例子。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-04 20:39:37

表达式选择规范节点,而不是主机节点。如果要删除主机节点,则需要使用:

代码语言:javascript
复制
rm /files/etc/hosts/*[canonical="idm.myhost.com"]

这将选择/files/etc/hosts下的任何条目,其canonical子节点具有值idm.myhost.com

至于文档,有一个教程在Augeas的网站上,还有一些关于Augeas wiki的文档。

还有一个关于Augeas 在Youtube上的视频介绍。

我在大约7年前创建了写书,它可以仍然可以在网上找到,但从来没有选择完成它的时间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63746737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档