Centos 7サーバーにイーサネットインターフェイスを表示する必要があります。 Centos 6.5では(他の投稿の)このコマンドを使用しましたが、6.5では正しく機能しました。
ifconfig -a | sed -n 's/^\([^ ]\+\).*/\1/p' | grep -Fvx -e lo
Centos 7では、インターフェイスの出力に「:」が付いています。
だから私の出力は次のようになります
ifconfig -a | sed -n 's/^\([^ ]\+\).*/\1/p' | grep -Fvx -e lo
ens32:
lo:
"lo:" 削除 これを修正しました。結果はens32です。
ifconfig -a | sed -n 's/^\([^ ]\+\).*/\1/p' | grep -Fvx -e lo:
ens32:
最後の「:」をどのように削除できますか?このsedを修正できますか?または他のアイデア
ベストアンサー1
残念ながら、ifconfigコマンドの生出力を提供していませんでした。しかし、私は次のことをします:
$ ifconfig -a | perl -anle 'print $F[0] if /(^\w)/'
$ enp2s0f0
lo
tun0
wlp3s0b1
元の出力は次のとおりです。
enp2s0f0 Link encap:Ethernet HWaddr 3c:07:54:5f:5e:35
inet addr:192.168.1.114 Bcast:192.168.1.255
[...]
perl -anle、ここで 'a'は列の行を分割し、変数$ Fを埋めます。 'n'は出力を1行ずつ処理し、 'l'は各印刷の間に新しい行を置き、 'e'はコマンドラインPerlコマンドを実行します。その後、正規表現に従って、「^」行の先頭に「\w」文字を含む「//」行を一致させたいと言いました。