如何仅打印接口名称

如何仅打印接口名称

我只想从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,sedcut是一种矫枉过正。grep正如下面的更新中所建议的,一个单一的可以让你得到你想要的。

UDP日期:

根据编辑后的问题,并考虑到用户正在使用 Ubuntu(因此grep支持 Perl 正则表达式),这是一种方法:

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

相关内容