0

一致させようとしているパターンがあります:

<x>anything</x>

「何か」(テキストではなく、任意のテキストにすることができます-(.*))を「何か」に置き換えようとしているため、出現は次のようになります。

<x>something</x>

次のsedコマンドを使用しようとしています:

sed "s/<x>.*</x>/<x>something</x>/g" file  

次のエラーが表示されます。

sed: -e expression #1, char 19: unknown option to `s'

誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

2

これはうまくいくかもしれません(GNU sed):

sed -r 's/(<x>)[^<]*/\1something/g' file

これは、同じ行で繰り返しby<x>ではない何かを置き換えるように見えます。<<x>something

NB.*は貪欲で、同じ行の他のタグを飲み込む可能性があります。

于 2013-08-18T08:54:14.097 に答える
0

XML の終了タグのスラッシュが混乱を招いています。次のようにエスケープしてみてください。

sed "s/<x>.*<\/x>/<x>something<\/x>/g" file

私が今まで見たことのない等号も使用できるようです。仕事に着いたら、たくさんのスクリプトを変更します!

于 2013-08-18T08:47:49.073 に答える