インターフェイス名のみを出力する方法

インターフェイス名のみを出力する方法

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にリダイレクトするだけですgrepcut

iwconfig 2>&1 | grep ESSID | sed 's/\"//g' | cut -f1  -d" "  

しかし、このアプローチはgrep、を使用sedしてcut過剰です。grep以下のアップデートで提案されているように、1つのアップデートで必要なものを入手できます。

UDP日付:

編集された質問に基づいてユーザーがUbuntuを使用しているため、grepPerl正規表現をサポートしていることを考慮すると、次のアプローチがあります。

iwconfig 2>&1 | grep -oP "^\w+"

おすすめ記事