文章目录

  • 1、任务说明
  • 2、方法1:用 cut 提取IP
    • 2.1、提取关键行
    • 2.2、尝试分割提取
    • 2.3、去空格
    • 2.4、分割,提取指定的列
  • 3、方法2:用 awk 提取IP
    • 3.1、提取关键行
    • 3.2、分割提取

1、任务说明

本示例的主要目的是练习 grep、cut 、awk 的使用 。

任务说明,在 centos7 ,是 提取 IP 地址。

[java@localhost java_demo]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.109.128  netmask 255.255.255.0  broadcast 192.168.109.255inet6 f000::9000:8000:3000:6000  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:15:69:41  txqueuelen 1000  (Ethernet)RX packets 245  bytes 27187 (26.5 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 285  bytes 27165 (26.5 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:e9:59:cf  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

分析:

ens33 是 当前主机的IP 配置,inet 是IP地址, 192.168.109.128 就是想要的结果。

2、方法1:用 cut 提取IP

2.1、提取关键行

ens33 是 当前主机的IP 配置 ,inet 是IP地址,通过 grep "netmask" 获取当前行

[java@localhost java_demo]$ ifconfig ens33 | grep "netmask"inet 192.168.109.128  netmask 255.255.255.0  broadcast 192.168.109.255

2.2、尝试分割提取

想要把 192.168.109.128 提取出来,使cut 进行字符分割 。

cut -d " " -f 2 ,分割空格,提取第2列,如下:

[java@localhost java_demo]$ ifconfig ens33 | grep "netmask" | cut -d " " -f 2[java@localhost java_demo]

结果是空的,为什么呢?

再看下面的示例,

[java@localhost java_demo]$ ifconfig ens33 | grep "netmask" | cut -d " " -f 2-inet 192.168.109.128  netmask 255.255.255.0  broadcast 192.168.109.255
[java@localhost java_demo]$ ifconfig ens33 | grep "netmask" | cut -d " " -f 4-inet 192.168.109.128  netmask 255.255.255.0  broadcast 192.168.109.255
[java@localhost java_demo]$ ifconfig ens33 | grep "netmask" | cut -d " " -f 6-inet 192.168.109.128  netmask 255.255.255.0  broadcast 192.168.109.255
[java@localhost java_demo]$ ifconfig ens33 | grep "netmask" | cut -d " " -f 8-inet 192.168.109.128  netmask 255.255.255.0  broadcast 192.168.109.255

发现规律, 提取行的前面有大量的空格,导致用空格进行分割时,出现大量的空白。所以要先去空格。

2.3、去空格

去空格的方法,参考我的另一篇文章: shell 去空格 ,这里不详述。

[java@localhost java_demo]$ ifconfig ens33 | grep "netmask" | awk '$1=$1'
inet 192.168.109.128 netmask 255.255.255.0 broadcast 192.168.109.255

2.4、分割,提取指定的列

cut 字符分割,提取第2列,

[java@localhost java_demo]$ ifconfig ens33 | grep "netmask" | awk '$1=$1'| cut -d " " -f 2
192.168.109.128

最终完成IP提取。

3、方法2:用 awk 提取IP

3.1、提取关键行

ens33 是 当前主机的IP 配置 ,inet 是IP地址,通过 grep "netmask" 获取当前行

[java@localhost java_demo]$ ifconfig ens33 | grep "netmask"inet 192.168.109.128  netmask 255.255.255.0  broadcast 192.168.109.255

3.2、分割提取

awk 字符分割,提取第2列,

[java@localhost java_demo]$ ifconfig ens33 | grep "netmask" | awk -F" " '{print $2}'
192.168.109.128

Centos7 ,使用grep,cut 、awk 提取IP地址相关推荐

  1. Linux_shell---使用grep,tr和cut指令提取IP地址

    首先贴上全部的Shell指令操作: >>>ifconfig eno2 | grep inet -w | tr -s '\ ' | cut -d ' ' -f 3 下面来进行指令的分析 ...

  2. Linux-04-文件管理(包括压缩与打包)、用户管理、提取IP地址

    一.文件管理 1.目录结构 2.基础命令 cd pwd touch mkdir cp mv rm ls cat head tail less more rz sz wget vim 3.压缩与打包 ( ...

  3. 正则表达式实现提取IP地址字符串

    获取IP的话一般使用ifconfig 虽然网上很多用grep或者awk的,但是如果没有这些库的话怎么匹配字符串呢? 提取ip地址我的思路是先system(ifconfig > file) 输出到 ...

  4. 如何从 Apache 和 NGINX 服务器的日志文件中提取 IP 地址

    作为系统管理员,您需要密切关注访问您网站的 IP 地址.服务器日志是此类信息的有用来源.它们包含您的服务器收到的每个请求的 IP 地址.日期时间.请求类型.URL.服务器响应等.在本文中,我们将了解如 ...

  5. shell脚本通过正则表达式提取 IP 地址

    假设需要提取的 IP 地址在文件 test.txt 中,可以使用以下 shell 脚本通过正则表达式提取 IP 地址并打印 grep -E -o "([0-9]{1,3}.){3}[0-9] ...

  6. python正则匹配ip地址_Python正则表达式匹配和提取IP地址

    Linux No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}.){3 ...

  7. python re正则提取ip地址_Python正则表达式匹配和提取IP地址

    No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}\.){3}[0-9 ...

  8. 使用 Python 从文件中提取 IP 地址

    让我们看看如何使用 Python 从文件中提取 IP 地址. 算法 : 为正则表达式导入 re 模块. 使用 open() 函数打开文件. 读取文件中的所有行并将它们存储在列表中. 声明 IP 地址的 ...

  9. Centos8、Centos7解决Ens33网卡不显示IP地址的问题。

    @Centos8.Centos7解决Ens33网卡不显示IP地址的问题. Centos8.Centos7解决Ens33网卡不显示IP地址的问题. Centos8和Centos7有很多相似之处.对于En ...

最新文章

  1. 【Android】Android中判断后台服务是否正在运行
  2. python 跟踪算法
  3. 9中继器添加一列序号自增_三个动态自动更新EXCEL序号的小技巧,解决重复编号困扰...
  4. 《人月神话》读后感一
  5. 清空image画布并改变大小填充背景色
  6. 使用console进行 性能测试 和 计算代码运行时间
  7. 每周荐书:ES6、虚拟现实、物联网(评论送书)
  8. 苹果Mac 3D 模型展开工具:Unfolder
  9. Linux下Docker命令自动补全
  10. 2016年 最火的 15 款 HTML5 游戏引擎
  11. python实现微信自动发信息软件_Python实现给微信好友自动发送消息的示例
  12. 用C 语言实现斐波那契数列
  13. 坚果云 linux 使用方法,Ubuntu坚果云安装与卸载教程
  14. vue spa项目转服务器渲染
  15. 如果我们能正预基面因子
  16. html+dfn标签,HTML DOM DFN用法及代码示例
  17. kafka 延时消息处理
  18. 东南大学洪伟教授评述:毫米波与太赫兹技术
  19. 1、大道至简的数据处理工具-(Microsoft Power Query入门)
  20. 想要改变世界的 Rust 语言

热门文章

  1. 服务器机房消防系统,服务器机房消防系统和维护
  2. WordNet介绍,一个开放知识图谱
  3. 把互联网界的大牛——王煜全老师开出的书单和大家分享一下
  4. 硬件设备使用网线连接PC并访问外网
  5. 手机与电脑共享文件资源的几种方法
  6. outlook邮件撤回失败
  7. 如何零基础转行成为一个自信的前端达人
  8. 使用iMovie和Keynote制作App Preview
  9. 【论文阅读】Stroke Controllable Fast Style Transfer with Adaptive Receptive Fields
  10. erlang send_after 源码剖析