regex - Grep 第一个八位字节中只有 1 位数字的 IP 地址

标签 regex linux grep

我正在尝试输出文件中第一个八位字节为 1 位数字的所有 IP。

文件结构:
1.56.46.44
244.34.56.90
198.168.1.1
等等...

我正在寻找
的输出 1.56.46.44

我已经尝试过:

 grep -E "[^^][0-9].[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}" file.txt

输出每个 IP,仅突出显示几个数字

并且也尝试过:

  grep -o -n '\b[0-9].' file.txt

输出任意一位数字八位字节

最佳答案

您需要转义 . 字符,否则它们会匹配任何内容,包括另一个数字。

而且开头不应该有[^^]。匹配 ^ 以外的任何字符。因此,如果输入以 12. 开头,则 1 将与 [^^] 匹配。单独使用 ^ 来匹配行的开头。

grep -E '^[0-9]\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' file.txt

关于regex - Grep 第一个八位字节中只有 1 位数字的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74382443/

相关文章:

ios - NSRegularExpression 验证电子邮件

java - codingBat repeatEnd 使用正则表达式

linux - shell Linux : grep exact sentence with NULL character

相当于 bash 的 {1..4} 的 Python 正则表达式

regex - 无法使用正则表达式 crate : expected (), 中的 `replace_all` 找到的字符串

linux - JPG(文档)到 PDF(linux 控制台)

c - 如何从该进程中分辨出该进程的父进程 pid?

linux - 试图捕获 Linux 机器上的所有内存读/写

python - 您如何通过 grep 浏览存在于许多不同目录中的代码?

windows - 在 Windows 中 grep unicode 文本文件的免费程序?