使用Augeas類型:
augeas { 'remove_ini_header':
incl => '/etc/example.ini',
lens => 'IniFile.lns_loose',
changes => 'rm section[. = "header"]',
}
要打破這一點,首先我用內置的IniFile.lns_loose
鏡頭(即INI文件「通用」鬆解析)和augtool
看到樹的當前狀態:
$ augtool -t "IniFile.lns_loose incl /etc/example.ini"
augtool> print /files/etc/example.ini
/files/etc/example.ini
/files/etc/example.ini/section = "header"
/files/etc/example.ini/section/ip = "'1.1.1.1'"
/files/etc/example.ini/section/hostname = "'myserver'"
/files/etc/example.ini/section/port = "80"
整款是樹中的一個組成部分,因此調用rm
的塔t部分將刪除整個子樹。
要匹配標題部分,您需要搜索名爲section
的節點,其值(右側)爲header
。 [. = "header"]
命令的一部分是path expression,它針對值爲header
的節點進行過濾。
用augeas刪除包含標頭的大部分文件可能會更好:https://docs.puppet.com/puppet/4.10/resources_augeas.html。這看起來很吸引你嗎? –
這是我成功的最後一次嘗試,然後我屈服於瘋狂,這是augeas :( – jacksonecac
我不特別關心augeas,但它可能是你最好的選擇在這裏。 –