• 締切済み

IPアドレスの置換について

お世話になっています。 sedコマンドにて既存のIPアドレスの各オクテットの末尾の数字を任意の数字に置換したいのですがいい方法はあるでしょうか? 置換前のIPアドレスは取得できるのですがその後の置換方法がうまくいかずご意見いただけばと思います。 sed -e 's/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/各オクテットの末尾を1にしたい /g' test.log

みんなの回答

回答No.2

こんなのでいかがでしょうか? $ echo "192.168.51.22" | sed -E 's/([0-9]{1,2})([0-9]\.)([0-9]{1,2})([0-9]\.)([0-9]{1,2})([0-9]\.)([0-9]{1,2})([0-9])$/\11.\31.\51.\71/' 191.161.51.21 -E を使わないと()を\(\)と書かないといけないので、  ※しかも「.」を\.と書かないといけないのは共通。 誤記・誤読が増えて頭がおかしくなりそうな問題でした。

  • asciiz
  • ベストアンサー率70% (6850/9746)
回答No.1

4オクテット目だけではなく各オクテットの末尾、ですか? なんか意味のある操作には思えないんですが次のものではどうでしょう。 テストしてないので動かなかったらすみません。 ・末尾を1に置換する例 sed -e 's/\d\b/1/g' IPアドレス以外の数字記載は無いという前提ですが。

関連するQ&A