2016-08-08 9 views
0

私はMac端末上のファイル内の文字列をsedを使って検索して置換しようとしています。 、「123.123.123.123:基本的に私は交換したい文字列は「HOSTSようになり、Sed検索と変数文字列の置換

sed -i.bak 's/HOSTS/BOASTS/g' file.txt 

しかし、私はもう少し複雑な何かにそれをしようとしている:私は、単純な文字列を検索および置換することができますよ12345 " - 123.123.123.123は可変IPなので、正確にそれを検索することはできないので、私は正規表現、主に"。 "を使用しようとしています。 IPアドレスが何であるかわからないことを示しています。私は運で次のことを試してみた

sed -i.bak 's/HOSTS:"., 00000"/HOSTS:"999.999.999.999, 00000"/g' file.txt 

答えて

1

あなたが次のことを試みることができる:

echo "HOSTS:\"123.123.123.123, 12345\"" | sed -e 's/[0-9][0-9][0-9]\.[0-9][0-9][0-9]\.[0-9][0-9][0-9]\.[0-9][0-9][0-9]/999.999.999.999/g'. 

[0-9]は、数字を探します、そして各\.は実際のシンボルです、 sedの "文字と一致する"シンボルではありません。これは、IPが常にこの構造を持つことを前提としています。 xxx.xxx.xxx.xxx:xxxxを扱っている場合は、それに応じて編集する必要があります。

+0

[0-9] \ + \。[0-9] \ + \。[0-9] \ +/'ここで、 \ + 'は前の文字の1つ以上を示しますこれは4.2.2.2(有効なIP)のようなIPアドレスで動作します。 – sage

関連する問題