たとえば、特定の場所のみSed
/test srcパスを<img>
タグ内に置き換えたいと考えています。
ただし、<p>test</p>
には触れないでください。
$ cat test.html
<img src="/test" width="18" alt="" /><br>
<p>test</p>
今のところ私は次のように実行できます。
sed -i '/test'|/hoge|g' test.html
ただし、単語はグローバルに変更されます。
たとえば、特定の場所のみSed
/test srcパスを<img>
タグ内に置き換えたいと考えています。
ただし、<p>test</p>
には触れないでください。
$ cat test.html
<img src="/test" width="18" alt="" /><br>
<p>test</p>
今のところ私は次のように実行できます。
sed -i '/test'|/hoge|g' test.html
ただし、単語はグローバルに変更されます。
sed '/<img/s|/test|/hoge|g' test.html
一行のために働くだろう<img
タグ
SEDがs///g
置換パターンに一致するラインに交換を制限する別の/PATTERN/
を前置することを可能にします。
しかし、実際にはxmlパーサーを使用して安全である必要があります。 sedを持つ
答えをありがとう。 xmlパーサーについていくつかリンクを張ることができますか? – Tosh
別のアプローチ:
sed -i 's|\(<img *src="/\)test|\1hoge|' test.html
<img *src="/
は、置換文字列に\1
を使用してキャプチャしてbackreferencedされます。 以下の文字列(test
)はhoge
に置き換えられます。
正規表現を使用しないでください。xmlstarletのようなhtmlパーサーを使用してください。 – Sundeep