如何在 linux shell 中通过正则表达式提取文本部分?可以说,我有一个文件,其中每一行都有一个 IP 地址,但位置不同。使用常见的 unix 命令行工具提取这些 IP 地址的最简单方法是什么?
原文由 Kazimieras Aliulis 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 linux shell 中通过正则表达式提取文本部分?可以说,我有一个文件,其中每一行都有一个 IP 地址,但位置不同。使用常见的 unix 命令行工具提取这些 IP 地址的最简单方法是什么?
原文由 Kazimieras Aliulis 发布,翻译遵循 CC BY-SA 4.0 许可协议
此处的大多数示例将匹配 999.999.999.999,这在技术上不是有效的 IP 地址。
以下将仅匹配有效的 IP 地址(包括网络和广播地址)。
grep -E -o '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file.txt
如果要查看匹配的整行,请省略 -o。
原文由 Sarel Botha 发布,翻译遵循 CC BY-SA 3.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答796 阅读✓ 已解决
2 回答3.2k 阅读
您可以使用 grep 将它们拉出。