0

私は symfony2 サイト web の内部化を行います。私のコードは次のような単位変換を生成できます:

 <trans-unit id="861b143b00e2f350dfe22876922294066b160351" resname="utilisez.ff.chrome">
    <source>utilisez.ff.chrome</source>
    <target state="new">utilisez.ff.chrome</target>
    <jms:reference-file line="85">Resources/views/base.html.twig</jms:reference-file>
    <jms:reference-file line="62">Resources/views/base_jq.html.twig</jms:reference-file>
  </trans-unit>

source;target (utilisez.ff.chrome; utilisez de préférence Firefox ou Chrome)ターゲット値をファイル内の値に置き換えるbashファイルを作成したいデータを含むcsvファイルがあります。あなたが私を助けることができれば、それはとても素晴らしいことです:)私はbashコマンドのスキルがほとんどありません。前もって感謝します。

4

1 に答える 1

1

を使用:

を使用して@id

xmlstarlet edit -L \
-u "//trans-unit[@id="861b143b00e2f350dfe22876922294066b160351"]/target/text()"\
-v 'utilisez de préférence Firefox ou Chrome' file.xml

またはcsvのテキストを使用:

src="$(cut -d';' -f2 file.csv | tr -d $'\n')"
rep="$(cut -d';' -f3 file.csv | tr -d $'\n')"
xmlstarlet edit -L -u "//target/text()[@text()='$src'" -v "$rep" file.xml

その場で編集されたファイルの出力:

<?xml version="1.0"?>
<trans-unit id="861b143b00e2f350dfe22876922294066b160351" resname="utilisez.ff.chrome">
  <source>utilisez.ff.chrome</source>
  <target state="new">utilisez de pr&#xE9;f&#xE9;rence Firefox ou Chrome</target>
  <jms:reference-file line="85">Resources/views/base.html.twig</jms:reference-file>
  <jms:reference-file line="62">Resources/views/base_jq.html.twig</jms:reference-file>
</trans-unit>
于 2014-12-24T16:57:10.230 に答える