gpt4 book ai didi

awk - Linux awk 命令

转载 作者:行者123 更新时间:2023-12-01 07:22:00 24 4
gpt4 key购买 nike

我是使用 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: %s\n", $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: %s\n", $1, mac }'

不太好,因为写出重复,而不是计算重复。)

第一行匹配 MAC 地址并将最近的地址保存在变量 mac 中。第二个匹配 IP (IPv4) 地址并打印当前 MAC 地址和 IP 地址。

如果您有杂散的前导或尾随空白,或其他杂散字符,则需要适本地使正则表达式更复杂。

关于awk - Linux awk 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4057053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com