무선 인터페이스의 논리적 이름을 가져옵니다.

무선 인터페이스의 논리적 이름을 가져옵니다.

내 컴퓨터에서 모든 무선 인터페이스를 사용할 수 있도록 노력합니다. 예를 들어, wlan0논리적 이름이 각각 과 인 두 개의 네트워크 카드를 사용하는 경우 ra0 이를 인쇄하려고 합니다.

이것이 내가 시도한 것이지만 아무런 결과도 얻지 못했습니다.

sudo lshw -C network | awk 'if (/description: / $2 == "Wireless") {  /logical name: /{printf $3 "\n";}}'

구문 오류가 발생합니다.

awk: line 1: syntax error at or near if
awk: line 1: syntax error at or near }

부품 없이 출력 awk:

*-network               
       description: Network controller
       product: BCM4313 802.11bgn Wireless Network Adapter
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@0000:05:00.0
       version: 01
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list
       configuration: driver=bcma-pci-bridge latency=0
       resources: irq:17 memory:96400000-96403fff
  *-network
       description: Ethernet interface
       product: RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:06:00.0
       logical name: enp6s0
       version: 02
       serial: 88:ae:1d:da:9e:99
       size: 10Mbit/s
       capacity: 100Mbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half latency=0 link=no multicast=yes port=MII speed=10Mbit/s
       resources: irq:24 ioport:2000(size=256) memory:92410000-92410fff memory:92400000-9240ffff memory:95400000-9541ffff
  *-network
       description: Wireless interface
       physical id: 3
       logical name: wlp5s0b1
       serial: 00:26:82:e7:b8:32
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=brcmsmac driverversion=4.4.0-53-generic firmware=610.812 ip=192.168.0.14 link=yes multicast=yes wireless=IEEE 802.11bgn

업데이트: 내가 원하는 것을 얻을 수 있는 더 좋은 방법이 있다면 기꺼이 이와 같은 답변을 받아들이겠습니다.

답변1

awk -F": " -v line=-1 '{if($2=="Wireless interface"){ line=NR+2}; if (line==NR){print $2}}' youfile
  • -F구분 기호 설정
  • -v값이 포함된 변수 전달
  • NR전화 번호

나는 두 번째 행에서 두 번째 항목을 얻습니다."Wireless interface"

관련 정보