単一 IP を含む Cat/grep 専用ライン

単一 IP を含む Cat/grep 専用ライン

このようなファイルがあります。

Script http://127.0.0.1/ blabla
127.0.0.1
Script 127.0.0.2/index.html bla bla
127.0.0.2
Script 127.0.0.3/contact bla bla
Script 127.0.0.4/settings bla bla
127.0.0.4

すべての行のすべてのIPではなく、単一のIPのみを含む行のみを取得したいと思います。

どうすればいいですか?

結果は

127.0.0.1
127.0.0.2
127.0.0.4

ベストアンサー1

このcatユーティリティは提供されたデータをリンクするだけなので、ここではあまり役に立ちません。

コンポーネントを少し混乱させても大丈夫だとします。効果的なIPアドレス:

grep -Ex '([0-9]{1,3}\.){3}[0-9]{1,3}' file

これは、与えられた正規表現に一致するすべての行を一致させて印刷します(そして他の行は削除します)。

より粗い解決策は、ドットや数字ではなく行を削除することです。

grep -v '[^0-9.]' file

要件に応じて、そのうちの1つで十分です。

完全に正しい正規表現(無効なIPアドレスと一致しない)には、次のものを使用できます。

grep -Ex '((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])' file

おすすめ記事