인터페이스 이름만 출력하는 방법

인터페이스 이름만 출력하는 방법

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아래 업데이트에서 제안한 대로, 단 하나의 업데이트로 원하는 것을 얻을 수 있습니다.

UDP 날짜:

편집된 질문을 기반으로 사용자가 Ubuntu를 사용하고 있으므로 grepPerl 정규식을 지원한다는 점을 고려하면 다음과 같은 접근 방식이 있습니다.

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

관련 정보