替换该命令中的 awk

替换该命令中的 awk

我正在努力处理 Debian 的预置脚本,并发现 awk 在安装过程中不可用。

一些背景知识

预置脚本在以下行失败并返回空结果:

real=`ip -o link | awk '/<%= @host.mac -%>/ {print $2;}' | sed s/://`
cat << EOF > /etc/network/interfaces
#loopback
auto lo
iface lo inet loopback

#<%= @host.primary_interface.identifier %>
auto $real
allow-hotplug $real
iface $real inet <%= host_dhcp ? 'dhcp' : 'static' %>

结果$real是空的并产生错误的网络配置。

我希望存档的内容

我想重写该命令,以便结果看起来像ens18eth0基于此输入:

root@vm:~# ip -o link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000\    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\    link/ether 1e:7d:da:55:31:23 brd ff:ff:ff:ff:ff:ff

这是安装过程中失败的命令:

root@vm:~# ip -o link | awk '/1e:7d:da:55:31:23/ {print $2;}' | sed s/://
ens18

我的问题

在这种情况下,如何避免并使用其他工具来获取类似from -outputawk的接口名称?不幸的是我不太熟悉。ens18ip -o linksed

答案1

尝试grepcut

ip -o link | grep '1e:7d:da:55:31:23' | cut -d' ' -f2 | sed s/://

相关内容