所以我有一个文件在被阅读之前必须转换为文本,无论如何这里是我的困境。
我能做到
$convertfile filename|cut -c39,40
我会收到两封信(这是我要找的,但我也需要这样做
$convertfile filename|cut -c45--56
并获得一个MAC地址恰好在上面2个字母的同一行内,我需要在屏幕上打印那些2。
我理解awk可以帮助我这个,但我不能使用列,因为字符会不断。
比方说吧
12345: 45 45 : 12131 : XU : MACADDRRESS1
我想打印XU MACADDRESS1
并将其与/proc/net/arp
现在,我正在转换的文件上的mac地址不包含proc net arp中的“:”,我可以使用sed将grep的输出转储到文本文件中然后匹配它们。
无论如何,最终产品将是
XU - IP
或
XU MACADDRESS1 IP
我知道这是很多工作,但非常感谢任何帮助。
答案 0 :(得分:0)
不确定是否完全理解了这个问题。但这可能会有所帮助:
> s='12345: 45 45 : 12131 : XU : MACADDRRESS1'
> awk -F '[: ]+' '{print $5, $6, "IP"}' <<< "$s"
XU MACADDRRESS1 IP
答案 1 :(得分:0)
s='12345: 45 45 : 12131 : XU : MACADDRRESS1'
MAC=$(awk '{print $9}' <<< $s)
IP=$(grep "$MAC" /proc/net/arp|awk '{print $1}')