このコマンドで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は空で、無効なネットワーク構成を生成します。

私が保管したいもの

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

私の質問

この場合、awk-outputなどのインタフェース名を取得するために他のツールを回避して使用する方法は何ですか?残念ながら、私はそれについてあまり慣れていません。ens18ip -o linksed

ベストアンサー1

試しgrepてみてくださいcut

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

おすすめ記事