Saya memiliki format file berikut:
<common>
fitnes=0
genetic=1
method=0
</common>
<inputs>
foo=bar
bar=foo
</inputs>
<limits>
balance=200.00
</limits>
dan saya ingin menghapus semua yang ada di antara <inputs>
dan </inputs>
(tidak termasuk pola itu sendiri) dan menggantinya dengan konten dari file lain (misalnya foo.txt
). Dengan kata lain baris dengan foo=bar
dan bar=foo
akan diganti dengan konten lain.
Mungkin bisa mirip dengan cara Anda menghapus kecocokan multi-garis , seperti:
:g/<inputs/,/inputs>/d
tapi saya tidak yakin dengan apa yang harus saya ganti d
untuk memasukkan konten file lain, tetapi saya ingin mempertahankan pola yang cocok.
Pendekatan serupa akan menghapus konten dalam dari tag html , seperti
:/<inputs>/norm vitd
tapi kemudian saya tidak tahu bagaimana Anda menambahkan konten dari file tersebut.
Idealnya saya mencoba menemukan satu liner, karena itu akan menjadi bagian dari skrip lain.
Bagaimana saya bisa mencapainya?
ex
skrip di mana saya dapat menentukan file mana yang akan dimasukkan tergantung pada argumen input pengguna.Jika ini merupakan upaya lain untuk mem-parsing XML dengan Alat non-XML, jangan.
Solusi di sini valid, tetapi niatnya mungkin tidak. Jika XML bukan dari sumber yang dijinakkan dengan baik, Anda mungkin mendapatkan escapes, CDATA, atau spasi putih di tag!
Jadi xsltproc dari command in vi dapat mengatasinya.
sumber
ini
file tersebut tidak terdokumentasi dengan baik menggunakan 3 tag mirip XML itu.