加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux awk命令

发布时间:2020-12-13 23:57:55 所属栏目:Linux 来源:网络整理
导读:我是使用 Linux的初学者,我有一个输入文件,内容如下: 00.11.11.11.11.11177.22.22.22 一行以太网地址和一行IP地址, 我怎么能把这个文件转换为: IP: 177.22.22.22 MAC: 00.11.11.11.11.11 我觉得awk会这样做,但我不知道怎么做.有任何想法吗? 谢谢! 解决方
我是使用 Linux的初学者,我有一个输入文件,内容如下:

00.11.11.11.11.11
177.22.22.22

一行以太网地址和一行IP地址,
我怎么能把这个文件转换为:

IP: 177.22.22.22  MAC: 00.11.11.11.11.11

我觉得awk会这样做,但我不知道怎么做.有任何想法吗?

谢谢!

解决方法

它也可以用’sed’来完成,但是因为你要求’awk’,’awk’它应该是.

awk '/^([0-9]+.){5}[0-9]+$/ { mac = $1 }
     /^([0-9]+.){3}[0-9]+$/ { printf "IP: %s MAC: %sn",$1,mac }' data

(以前的版本:

awk '/^[0-9]+.[0-9]+.[0-9]+.[0-9]+.[0-9]+.[0-9]+$/ { mac = $1 }
     /^[0-9]+.[0-9]+.[0-9]+.[0-9]+$/ { printf "IP: %s MAC: %sn",mac }'

由于书面重复而不是计数重复,因此不太好.)

第一行匹配MAC地址并保存最新的变量mac.第二个匹配IP(IPv4)地址并打印当前的MAC地址和IP地址.

如果您有迷路的前导或尾随空白或其他流浪角色,则需要使正则表达式更加复杂.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读