Centos7 ,使用grep,cut 、awk 提取IP地址
文章目录
- 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地址相关推荐
- Linux_shell---使用grep,tr和cut指令提取IP地址
首先贴上全部的Shell指令操作: >>>ifconfig eno2 | grep inet -w | tr -s '\ ' | cut -d ' ' -f 3 下面来进行指令的分析 ...
- Linux-04-文件管理(包括压缩与打包)、用户管理、提取IP地址
一.文件管理 1.目录结构 2.基础命令 cd pwd touch mkdir cp mv rm ls cat head tail less more rz sz wget vim 3.压缩与打包 ( ...
- 正则表达式实现提取IP地址字符串
获取IP的话一般使用ifconfig 虽然网上很多用grep或者awk的,但是如果没有这些库的话怎么匹配字符串呢? 提取ip地址我的思路是先system(ifconfig > file) 输出到 ...
- 如何从 Apache 和 NGINX 服务器的日志文件中提取 IP 地址
作为系统管理员,您需要密切关注访问您网站的 IP 地址.服务器日志是此类信息的有用来源.它们包含您的服务器收到的每个请求的 IP 地址.日期时间.请求类型.URL.服务器响应等.在本文中,我们将了解如 ...
- shell脚本通过正则表达式提取 IP 地址
假设需要提取的 IP 地址在文件 test.txt 中,可以使用以下 shell 脚本通过正则表达式提取 IP 地址并打印 grep -E -o "([0-9]{1,3}.){3}[0-9] ...
- python正则匹配ip地址_Python正则表达式匹配和提取IP地址
Linux No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}.){3 ...
- python re正则提取ip地址_Python正则表达式匹配和提取IP地址
No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}\.){3}[0-9 ...
- 使用 Python 从文件中提取 IP 地址
让我们看看如何使用 Python 从文件中提取 IP 地址. 算法 : 为正则表达式导入 re 模块. 使用 open() 函数打开文件. 读取文件中的所有行并将它们存储在列表中. 声明 IP 地址的 ...
- Centos8、Centos7解决Ens33网卡不显示IP地址的问题。
@Centos8.Centos7解决Ens33网卡不显示IP地址的问题. Centos8.Centos7解决Ens33网卡不显示IP地址的问题. Centos8和Centos7有很多相似之处.对于En ...
最新文章
- 【Android】Android中判断后台服务是否正在运行
- python 跟踪算法
- 9中继器添加一列序号自增_三个动态自动更新EXCEL序号的小技巧,解决重复编号困扰...
- 《人月神话》读后感一
- 清空image画布并改变大小填充背景色
- 使用console进行 性能测试 和 计算代码运行时间
- 每周荐书:ES6、虚拟现实、物联网(评论送书)
- 苹果Mac 3D 模型展开工具:Unfolder
- Linux下Docker命令自动补全
- 2016年 最火的 15 款 HTML5 游戏引擎
- python实现微信自动发信息软件_Python实现给微信好友自动发送消息的示例
- 用C 语言实现斐波那契数列
- 坚果云 linux 使用方法,Ubuntu坚果云安装与卸载教程
- vue spa项目转服务器渲染
- 如果我们能正预基面因子
- html+dfn标签,HTML DOM DFN用法及代码示例
- kafka 延时消息处理
- 东南大学洪伟教授评述:毫米波与太赫兹技术
- 1、大道至简的数据处理工具-(Microsoft Power Query入门)
- 想要改变世界的 Rust 语言