使用三剑客(grep,sed,awk)获取IP地址

简介: 使用三剑客(grep,sed,awk)获取IP地址

例一:将系统用ifconfig命令列出的信息中ens33的IP地址打印出来

image.png

自用方法1(简单实用):


ifconfig ens33 | grep 'inet' | awk -F " " '{print $2}' | sed -n '1p'

  • ifconfig ens33 获取网卡信息
  • grep 'inet' 过滤inet的行
  • awk -F " " '{print $2}' 以空格为分隔符,获取第二列
  • sed -n '1p' 打印第一列


方法2:


[root@Centos /]# ifconfig eth0 |grep "inet addr"

inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0

首先将带有IP地址行过滤打印出来,然后再进行过滤取出IP地址

[root@Centos /]# ifconfig eth0 |grep "inet addr"|awk -F '[ :]+' '{print $4}'

192.168.1.2

以空格和:做为分隔符,+代表前面多个重复的分隔符识为一个,将第四列打印

方法3:


[root@Centos /]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:AA:CA:2B  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feaa:ca2b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7005 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3095 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:709421 (692.7 KiB)  TX bytes:454116 (443.4 KiB)

[root@Centos /]# ifconfig eth0|awk -F '[ :]+' NR2 取整个内容第二行

inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0

[root@Centos /]# ifconfig eth0|awk -F '[ :]+' 'NR2 {print $4}' 打印第四列

192.168.1.2


方法4:


[root@Centos /]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:AA:CA:2B  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feaa:ca2b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7271 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3244 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:733402 (716.2 KiB)  TX bytes:473258 (462.1 KiB)

[root@Centos /]# ifconfig eth0|sed -n 2p 将第二行打印

inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0

[root@Centos /]# ifconfig eth0|sed -n 2p|sed 's#^.*addr:# #g'

192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0

将以空格.*(前任意字符)addr:开头的内容替换成空输出

[root@Centos /]# ifconfig eth0|sed -n 2p|sed 's#^.addr:# #g'|sed 's# Bcast.$# #g' 将以两空格Bcast.*(后任意字符)结尾的内容替换成空输出

192.168.1.2


方法5

[root@Centos /]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:AA:CA:2B  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feaa:ca2b/64 Scope:Link
          UP BROACAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7723 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3434 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:776543 (758.3 KiB)  TX bytes:493886 (482.3 KiB)

[root@Centos /]# ifconfig eth0|sed -n 's#^.addr:(.) Bcast.*$#\1#gp'

192.168.1.2

将需要的内容匹配到()中,然后将()中的内容打印出来


例二 过滤ip a 打印出的IP中ens33的地址


image.png

自用方法:

ip address | grep ens33 | sed -n '2p' | awk -F " " '{print $2}' | awk -F "/" '{print $1}'

  • grep ens33 过滤ens33这行
  • sed -n '2p' 获取第二行
  • awk -F " " '{print $2}' 以空格符为分割打印第二列,此过滤后会显示IP/掩码,所以仍需过滤
  • awk -F "/" '{print $1}'` 以/为分割胡打印第一列IP即可
目录
相关文章
|
存储 数据采集 监控
数据标准码表的3种创建方式
码表(Lookup表)由可枚举数据组成,用于存储名称与编码的映射关系,适用于属性值约束和质量监控。本文介绍在Dataphin创建码表的三种方式:1) 引用内置模板库,如行政区划、度量单位等标准码表;2) 从已有维表逆向生成码表,实现数据资产复用;3) 自定义创建,支持在线编辑或本地导入。通过这些方式,用户可高效管理码表,提升数据标准化水平,并将其应用于数据标准和质量规则中,确保数据一致性和合规性。
650 3
|
8月前
|
弹性计算 应用服务中间件 Linux
【运维实战】手把手教你在阿里云ECS上从零搭建Nginx服务器
本文详细介绍如何在阿里云ECS服务器(Alibaba Cloud Linux/CentOS/Ubuntu)上从零部署Nginx。涵盖安装、启动服务、安全组配置、验证访问及页面修改,并提供常用命令速查,助你快速搭建首个Web服务。
|
网络协议 应用服务中间件 nginx
性能提升-如何设置Windows操作系统TIME_WAIT状态的TCP连接快速回收时间?
性能提升-如何设置Windows操作系统TIME_WAIT状态的TCP连接快速回收时间?
904 0
|
运维 安全 Ubuntu
`/var/log/syslog` 和 `/var/log/messages` 日志详解
`/var/log/syslog` 和 `/var/log/messages` 是Linux系统的日志文件,分别在Debian和Red Hat系发行版中记录系统事件和错误。它们包含时间戳、日志级别、PID及消息内容,由`rsyslog`等守护进程管理。常用命令如`tail`和`grep`用于查看和搜索日志。日志级别从低到高包括`debug`到`emerg`,表示不同严重程度的信息。注意保护日志文件的安全,防止未授权访问,并定期使用`logrotate`进行文件轮转以管理磁盘空间。
6282 1
|
Linux
Linux Crontab 查看定时任务启动没
【10月更文挑战第20天】在Linux系统中,crontab用于设置周期性执行的任务。查看当前用户的Crontab任务列表,使用`crontab -l`;查看所有用户任务,使用`sudo crontab -l`或指定用户`sudo crontab -u username -l`。
2877 5
|
网络协议 NoSQL API
深入理解 RDMA 的软硬件交互机制
本文深入分析了RDMA技术在数据中心高性能网络环境下的工作原理及软硬件交互机制,通过对比传统Kernel TCP,突出了RDMA在减少延迟、提高系统性能方面的优势,同时讨论了其在内存管理、软硬交互方面的关键技术和挑战,为读者提供了全面理解RDMA技术及其应用场景的视角。
7634 8
|
安全 网络安全 数据库
扫描神器:Nessus 保姆级教程(附步骤)
扫描神器:Nessus 保姆级教程(附破解步骤)
|
Ubuntu 安全 网络协议
|
关系型数据库 MySQL 测试技术
压测工具sysbench的使用
压测工具sysbench的使用
2212 0