
path
複数の場所にいくつかのコンテンツを含むXMLファイルがあります。
.properties
ここで、上記のファイルから値を取得し、path
xmlの部分コンテンツを置き換えたいと思います。
以下のxmlファイルがあるとしましょう。
<?xml version="1.0" encoding="ISO-8859-1"?>
...
...
<classpath>
<pathelement location="/profiles/sh/finalFolder/Apache/example.jar" />
</classpath>
<property name="executable" value="/profiles/sh/finalFolder/Apache/instjamr/install" />
<fileset dir="/profiles/sh/finalFolder/Apache/ant"/>
xml ファイルには、/profiles/sh/finalFolder
複数の場所に特定のサフィックスが付いたパスが含まれています。
path.properties
これで、次の(キー、値)ペアを含むファイルがあります。
FinalFolder=/new/final/exit
(ユーザーはいつでもプロパティファイルの値を編集できます)
ファイルに記載されているキーpath
値に置き換えたいと思います。.properties
最終フォルダ。
.sh
これを行うには、ファイルにコードを書く必要があります。
答え1
まず、ファイルからパスを抽出しますpath.properties
。
newPath=`sed -n 's/FinalFolder=//p' path.properties`
次に、古いパスを新しいパスに置き換えます(読みやすくするために-
区切り文字として使用:/
sed -i "s-/profiles/sh/finalFolder-$newPath-g" file.xml
スクリプトは、ファイルにFinalFolderエントリがない場合、または誤った形式の場合は、いくつかのエラー処理をお勧めします。