1
をxmlファイルのDOCTYPE行を変更することができる: -ない私は以下のような名前alphabet.xmlとxmlファイルを持っているbashで
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE models SYSTEM "mp.dtd">
<models>
<class name="ABC">
<attribute name="a"/>
<attribute name="b"/>
<attribute name="c"/>
</class>
<class name="DEF">
<attribute name="d"/>
<attribute name="e"/>
<attribute name="f"/>
</class>
<class name="GHI">
<attribute name="g"/>
<attribute name="h"/>
<attribute name="i"/>
</class>
<class name="JKL">
<attribute name="j"/>
<attribute name="k"/>
<attribute name="l"/>
</class>
</models>
は、今私は<!DOCTYPE models SYSTEM "/opt/nms_cif_mp/dat/mp.dtd">
<!DOCTYPE models SYSTEM "mp.dtd">
文字列を置換します
コード私は以下を使用しています。しかし、このコードでは、上記の特定の文字列の置換は起こっていません。
cd /home/abinash/Desktop/MyFolder/
file_name="alphabet.xml"
from_dtd='<!DOCTYPE models SYSTEM "mp.dtd">'
to_dtd='<!DOCTYPE models SYSTEM "/opt/nms_cif_mp/dat/mp.dtd">'
#Basically using awk I am trying to replace the string and then write it into tmp.xml .
#After that I am copying the content of tmp.xml into alphabet.xml .
awk '{ if (NR == 2) print "<!DOCTYPE models SYSTEM "/opt/ericsson /nms_cif_mp/dat/mp.dtd""; else print $0}' /home/abinash/Desktop/MyFolder /$file_name > /home/abinash/Desktop/MyFolder/tmp.xml
cp /home/abinash/Desktop/MyFolder/tmp.xml /home/abinash/Desktop/MyFolder /$file_name
注:私は、任意の単語と<!DOCTYPE models SYSTEM "mp.dtd">
を交換する場合は、上記のコードのロジックは動作します(単語ハローで試してみました)ではなく、<!DOCTYPE models SYSTEM "/opt/nms_cif_mp/dat/mp.dtd">
とここに必要な特別な処理はありますか?
ヤーノシュ...それは今働いている...ありがとう。 – Abinash