2010-12-07 13 views
0

ファイル内の文字列をsedしようとしています。これは、1つの文字列で、ファイル、sed_tmpです:IP文字列を置換する

, "127.0.0.2"); 

これは私が使用するのsedコマンドです:

sed -r 's/[0-9{1,3}]\.[0-9{1,3}]\.[0-9{1,3]\.[0-9{1,3}]/XXX.XXX.XXX.XXX/g' ./sed_tmp 

と結果が

, "12XXX.XXX.XXX.XXX"); 

ですが、私は結果が必要

, "XXX.XXX.XXX.XXX"); 

私は間違って何をしていますか?

答えて

2

[]は

sed -r 's/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/XXX.XXX.XXX.XXX/g' ./sed_tmp 
1

これは動作します:

sed "s/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/XXX.XXX.XXX.XXX/g" 

私はあなたがそれを記述し、どこかへのリンクを持っているか、あなたがそこに使用している{1,3}構文を見たことがありませんか?

編集:sedのは若干異なるためにそれを使用するように思える:http://www.grymoire.com/Unix/Sed.html#uh-35

+0

の外はいそれは発生の{}を書きます – RusAlex