このようなファイルがあります。
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