【发布时间】:2018-06-25 12:34:38
【问题描述】:
我知道这是对许多人提出的大多数查询的重复讨论,但我没有专门得到任何合适的解决方案,只关注 awk 命令实用程序。
我正在尝试从 ifconfig 输出中过滤 MAC 和 IP 地址。
Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:192.xx.xx.xx Bcast:192.xx.xx.xx Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
目前我正在尝试通过匹配 HWADDR 然后检查第二行和下一行来打印。
awk '/HWaddr/{printf $NF;printf " ";getline;print $2;}' <filename> | cut -c1-18,24-
xx:xx:xx:xx:xx:xx 192.168.xx.xx
我的问题是如何搜索到上一行。例如:- 如果我匹配第二行的 IP 地址,那么如何反向搜索第一行,类似于
awk '/192/{printf $2;printf " ";<unknown>;}' <filename>
根据检查上一行,我从 192 开始匹配 IP。请问getline的反向搜索是什么,我的意思是反向搜索的指令是什么
仅使用 awk 实用程序查看
【问题讨论】:
-
请尝试选择任何一个答案作为正确答案(在所有答案中)以完全关闭线程。我看你从来不这样做。
-
在您的系统上查看
grep的手册页。一些实现可以选择执行此操作。