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

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

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

自用方法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的地址

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

自用方法:
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即可

原创文章,作者:AIRF,如若转载,请注明出处:http://www.ai-rf.com/index.php/2022/10/05/%e4%bd%bf%e7%94%a8%e4%b8%89%e5%89%91%e5%ae%a2grepsedawk%e8%8e%b7%e5%8f%96ip%e5%9c%b0%e5%9d%80/

(0)
AIRFAIRF
上一篇 2022年10月1日
下一篇 2022年10月5日

相关推荐

  • Redhat 7 LVM xfs文件系统修复

    一.情况描述 服务器重启操作系统后自动进入急救模式(单用户模式),进入后ip a查看lo网卡,df -h查看分区发现只存在lv_root,报错图如下 XFS(sdb1): Inte…

    Linux 2021年11月21日
  • Linux 系列基础教程(一)

    Linux 是一种自由和开放源码的类 UNIX 操作系统。 Linux 英文解释为 Linux is not Unix。 Linux 是在 1991 由林纳斯·托瓦兹在赫尔辛基大学…

    2022年9月25日
  • Linux中grep命令很少人知道的10种高级用法

    在Linux世界中,grep命令是一种强大的文本搜索工具。它不仅可以简单地匹配字符串,还可以通过使用一些高级技巧来实现更复杂的搜索操作。本文将向你介绍grep命令的10种高级用法,…

    C_C++_C# 2024年1月24日
  • Nginx的负载均衡实现

    环境 主机 ip 用途 软件 web1 192.168.50.60 nginx-1 httpd web2 192.168.50.61 nginx-2 httpd proxy 192…

    C_C++_C# 2023年12月16日
  • 宝塔面板搭配雷池WAF防火墙实战

    背景 因近期总是受到CC攻击,所以就找到了这款免费WAF 雷池是长亭科技耗时近 10 年倾情打造的 WAF,核心检测能力由智能语义分析算法驱动。 Slogan: 不让黑客越雷池半步…

    Linux 2023年8月29日
  • 反向代理加速源站教程

    场景 你的源站服务器 B 到你的网络非常差,但你另有一个服务器 A 到你的网络很好,尽管 A 的配置和硬盘都不理想,甚至可能会出问题。在这种情况下,你可以将服务器 A 用作源站反向…

    Linux 2023年6月24日
  • 使用三剑客(awk,sed,grep)过滤目录权限

    例:将/目录下etc目录的权限转换成数字输出 方法1 stat /etc | sed -n ‘4p’ | cut -d “(” -f2 | cut -d “/” -f1 方法2 s…

    Linux 2022年10月5日
  • Iptables怎么防止常见网络攻击

    什么是syn,ddos,ping SYN (Synchronize): 在 TCP(传输控制协议)中,SYN 是握手过程的一部分。当客户端尝试与服务器建立连接时,它发送一个带有 S…

    C_C++_C# 2023年12月16日
  • 为什么建议使用UUID进行挂载硬盘

    UUID简介 通用唯一识别码(英语:Universally Unique Identifier,简称UUID),UUID为Linux系统中的存储设备提供唯一的标识字符串,不管这个设…

    Linux 2023年1月6日
  • UNIX系列之AIX克隆系统盘

    前景提示: 未曾有Nim环境,且网络环境原因无法使用Nim安装,故采取使用克隆盘的方式进行安装 首先使用光盘正常安装一台机器,并按照基线文档更新 完成后从其他机器拔新盘并插入,插入…

    C_C++_C# 2021年11月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注