我正在努力处理 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
是空的并产生错误的网络配置。
我希望存档的内容
我想重写该命令,以便结果看起来像ens18
或eth0
基于此输入:
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
的接口名称?不幸的是我不太熟悉。ens18
ip -o link
sed
答案1
尝试grep
并cut
:
ip -o link | grep '1e:7d:da:55:31:23' | cut -d' ' -f2 | sed s/://