Augeasでは、現在の値を使用してプロパティ値をどのように変更しますか?

Augeasでは、現在の値を使用してプロパティ値をどのように変更しますか?

一般的なINIタイプファイルがあるとしましょう。 Samba.lnsはそのファイルをかなりうまく処理します。次の項目があります。

attribute = value

欲しい切り替える value到着するSome-VALUE-x。より具体的な例:

augtool> print /files/etc/yum.conf/main/cachedir
/files/etc/yum.conf/main/cachedir = "/var/cache/yum/$basearch/$releasever"

値を次に変更したいと思います。

"/var/cache/yum/noarch/$releasever"

つまり、残りを置き換え$basearchて維持したいと思います。noarch私の実際の例はもう少し複雑です。アウグストゥス内でもこれはできますか?

ベストアンサー1

単一のAugeas API呼び出しではこれを行うことはできませんが、aug_getとaug_setを使用すると呼び出し言語で実行できます。たとえば、ruby-augeasを使用すると、次のようになります。

aug.set("/files/etc/yum.conf/main/cachedir", aug.get("/files/etc/yum.conf/main/cachedir").sub("$basearch", "noarch"))

例で augtool を使用している場合は、シェルで次のことができます。

cachedir=$(augtool get /files/etc/yum.conf/main/cachedir | sed 's/$basearch/noarch/')
augtool set /files/etc/yum.conf/main/cachedir "$cachedir"

おすすめ記事