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地址. 如果您有迷路的前导或尾随空白或其他流浪角色,则需要使正则表达式更加复杂. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |