sed提取日志中的IP地址

简介: sed提取日志中的IP地址

在Linux环境中,sed 命令可以用来处理文本流并根据模式进行替换或者提取特定内容,因此它常被用于从日志文件中提取IP地址。以下是一个基本示例,假设日志文件中IP地址是以标准点分十进制形式出现的,并且独立成词或字段:

sed -nE 's/([0-9]{1,3}\.){3}[0-9]{1,3}/\1/p' logfile

这条命令解释如下:

  • -n 表示不打印每一行,默认情况下 sed 会打印所有行,这里我们只打印匹配到IP地址的行。
  • -E-r(取决于你的sed版本)启用扩展正则表达式,使得模式更易读。
  • s/search/replace/p 是替换模式,这里的 search 部分定义了IP地址的正则表达式:([0-9]{1,3}\.){3}[0-9]{1,3},表示由三个.分隔的四个0-255之间的数字段。
  • \1 在替换部分用到了反向引用,由于正则表达式中有括号,所以\1代表整个IP地址匹配的内容。
  • /p 表示打印那些替换发生过的行。

如果日志文件中的IP地址周围有其他文字,可能需要进一步细化正则表达式以确保准确匹配。例如,如果IP地址总是出现在 "inet addr:" 后面,可以这样做:

sed -nE '/inet addr:/ s/.*inet addr:(([0-9]{1,3}\.){3}[0-9]{1,3}).*/\1/p' logfile

这个命令首先查找包含 "inet addr:" 的行,然后提取紧跟其后的IP地址。

然而,对于日志文件,有时使用 grep 结合 awk 可能会更加方便和直观:

grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' logfile

这条命令会直接输出日志文件中所有的IP地址,不需要考虑上下文,只要符合IP地址格式就会被提取出来。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
域名解析 网络协议 应用服务中间件
nginx-ingress通过ipv6暴露服务,并在nginx ingress日志中记录客户端真实ipv6的ip地址
本文主要通过阿里云提供的clb和nlb来实现,建议是提前创建好双栈的vpc和vsw(使用clb可以不用双栈vpc和vsw)
189 1
|
8月前
|
Shell Perl
获取slb日志里ip地址的shell脚本
获取slb日志里ip地址的shell脚本
46 1
|
9月前
|
网络协议 Shell Perl
根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁
根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁
69 1
|
应用服务中间件 定位技术 网络安全
Nginx访问日志接入GrayLog4.2.5并通过GeoIP展现访问者IP的地理位置信息
Nginx访问日志接入GrayLog4.2.5并通过GeoIP展现访问者IP的地理位置信息
409 0
Nginx访问日志接入GrayLog4.2.5并通过GeoIP展现访问者IP的地理位置信息
|
Linux
利用pipeline实现GrayLog中用日志源IP地址区分主机
利用pipeline实现GrayLog中用日志源IP地址区分主机
206 0
利用pipeline实现GrayLog中用日志源IP地址区分主机
|
SQL 监控 数据可视化
网站流量日志分析--统计分析--基础指标统计分析(vv、ip)|学习笔记
快速学习网站流量日志分析--统计分析--基础指标统计分析(vv、ip)
237 0
网站流量日志分析--统计分析--基础指标统计分析(vv、ip)|学习笔记
|
网络协议
【TCP/IP】【调试】丢包、流不通、错包等问题查证手段系列之一——日志方式
【TCP/IP】【调试】丢包、流不通、错包等问题查证手段系列之一——日志方式
202 0
|
存储 Prometheus 监控
快速部署Grafana日志监控+Nginx封禁IP
事情的起因还要从某天突然发现服务有明显异常的访问记录说起,虽然我这1核2g的小机器没什么攻击的价值,但也有了部署一套监控系统的想法。
|
前端开发
前端IP位置定位以及访问日志问题解决
前端IP位置定位以及访问日志问题解决
|
安全 数据安全/隐私保护
云邮箱登录日志中有异地IP登录是怎么回事?该怎么办?
云邮箱登录日志中有异地IP登录是怎么回事?该怎么办?
1067 0