1

sed を使用して、xml ファイル内のすべての出現について、「foo=1&」と「bar=2&」の間のすべての文字を削除したいと考えています。

<url>http://example.com?addr=123&foo=1&s=alkjasldkffjskdk$bar=2&f=jkdng</url>
<url>http://example.com?addr=124&foo=1&k=d93ndkdisnskiisndjdjdj$bar=2&p=dnsks</url>

これが私のsedコマンドです:

sed -e '/foo=1&/,/bar=2&/d' sample.xml

これを実行すると、ファイルは変更されません。

上記は次の例に基づいています: 「string1」を検索し、それと「string2」の間を削除します。

4

2 に答える 2

7

deleteコマンドの代わりに置換コマンドを使用します。

sed -e 's/\(foo=1&\).*\(bar=2&\)/\1\2/'
于 2013-10-04T17:17:59.493 に答える
2

使用する必要があります

 sed -i -e 's/\(foo=1&\).*\(bar=2&\)/\1\2/' your_html.xml
于 2013-10-04T17:18:31.300 に答える