0

助けてくれてありがとう!

source.xml という名前の長いファイルがあります。2 つの xml ファイルの内容 (以下の名前と URL を参照) を source.xml 内に挿入する bash スクリプトを作成し、次の 2 行を置き換えたいと思います。

<include url="%SWFPATH%/scenes/corrugated_external/corrugated_cement_sheets/index.xml"/>
<include url="%SWFPATH%/scenes/corrugated_external/defining_asbestos/index.xml"/>

多数のディレクトリを対象にスクリプトを実行する必要があるため、フォルダ名を実際に指定することはできません。これにアプローチする最良の方法は次のとおりだと思います。

1-両方のindex.xmlファイルを1つにマージします(すでにこれを行っています)

2-「include」を含む行の前または後に、そのマージされたファイルを挿入します

3-「include」を含む行を削除します(これを行う方法を知っています)

どうすればこれを達成できますか?

ありがとう!

4

2 に答える 2

2

次のようなもの:

sed -e "/<include url=.../r /path/to/corrugated_cement_sheets/index.xml" -e '/<include url=...>/d' source.xml

もちろん、他のものに対してもこれを行い、include url=... を置き換えたい完全な文字列に置き換える必要があります。この場合:

<include url="%SWFPATH%/scenes/corrugated_external/corrugated_cement_sheets/index.xml"/>
于 2012-12-03T14:42:27.500 に答える
0

これは標準のテキスト ベースのツールでも実行できますが、 XMLStarletなどの XML 対応ツールを使用することをお勧めします。なんで ?

  1. XML構造を尊重します
  2. XML の文字とエンティティのエンコーディングを尊重します。
于 2012-12-03T14:35:00.350 に答える