web-dev-qa-db-ja.com

Sed:任意のIPアドレスを127.0.0.1に置き換えます

Sedを使用して、ファイル内のIPアドレスのインプレース置換を実行しようとしています。そんなこと知ってる 。はワイルドカードなので、次のことを試しました。

sed -i -e 's/.\..\..\..\./127.0.0.1/g' /.../myfile.txt

ただし、IPアドレスの各セクションの桁数(1〜3)がわからないため、エスケープが機能するかどうかもわかりません。何かアドバイス?とても有難い

2
Adam Karpowich

[0-9]は任意の数字に一致します。

[0-9]\{1,3\}は1〜3桁に一致します(これは先行ゼロを受け入れることに注意してください)。

したがって、

sed -i -e 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/127.0.0.1/g' /.../myfile.txt

大体あなたがしたいことをする必要があります。一部の無効なアドレスと一致しますが、おそらくその仕事をします。より高度なオプションについては、コメントの@steeldriverからのリンクを参照してください

4
Mark Perryman