iwconfig
コマンドからインターフェース名を印刷したいです
。これは次のコマンドの出力ですiwconfig
。
wlp2s0 IEEE 802.11 ESSID:"CoreFragment"
Mode:Managed Frequency:2.442 GHz Access Point: 0C:D2:B5:55:DF:74
Bit Rate=72.2 Mb/s Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=55/70 Signal level=-55 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:4 Invalid misc:6567 Missed beacon:0
enp3s0 no wireless extensions.
wlx00e02d01076f IEEE 802.11bgn ESSID:"Aleph_inCar" Nickname:"<WIFI@REALTEK>"
Mode:Master Frequency:2.412 GHz Access Point: 00:E0:2D:01:07:6F
Bit Rate:72.2 Mb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality=4/100 Signal level=4/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
lo no wireless extensions.
enx001e101f0000 no wireless extensions.
私はこれを試しました:
iwconfig | grep ESSID | sed 's/\"//g' | cut -f1 -d" "
しかし、出力にワイヤレス拡張がないか、印刷方法コマンドの出力を取得したい
... iwconfig
wlp2s0,enp3s0,wlx00e02d01076f,enx001e101f0000
答え1
あなたのコマンドは完全に動作します。必要に応じて処理できるように、STDERR出力をSTDOUTにリダイレクトするだけですgrep
。cut
iwconfig 2>&1 | grep ESSID | sed 's/\"//g' | cut -f1 -d" "
しかし、このアプローチはgrep
、を使用sed
してcut
過剰です。grep
以下のアップデートで提案されているように、1つのアップデートで必要なものを入手できます。
UDP日付:
編集された質問に基づいてユーザーがUbuntuを使用しているため、grep
Perl正規表現をサポートしていることを考慮すると、次のアプローチがあります。
iwconfig 2>&1 | grep -oP "^\w+"