iw dev wlp3s0 스캔의 출력을 제한하는 방법은 무엇입니까?

iw dev wlp3s0 스캔의 출력을 제한하는 방법은 무엇입니까?

Arch Linux를 새로 설치할 때 무선 네트워킹을 구성하려고 합니다. 이 명령은 iw dev wlp3s0 scan발견된 모든 네트워크에 대한 정보를 제공합니다. 내 SSID에 대한 정보가 필요합니다.

답변1

여기에는 확인할 Wi-Fi가 없지만 iw dev IFACE scan각 섹션은 들여쓰기되지 않은 줄로 시작하고 이후의 모든 줄은 들여쓰기되어 있다고 생각합니다. 따라서 들여쓰기되지 않은 줄을 섹션 나누기로 처리할 수 있습니다.

이는 일반적인 명령으로는 파싱하기가 쉽지 않으므로 두 단계로 수행할 수 있습니다. 세션 사이에 빈 줄을 삽입하여 시작하십시오. 그런 다음 awk의 단락 모드를 사용하십시오.

iw dev wlp3s0 scan | 
sed 's/^[^ \t]/\n&/' |
awk -v RS= '/^[ \t]*SSID: myssid$/'

SSID의 특수 문자를 올바르게 인용하도록 주의하세요. 변수로 전달하고 특수 문자를 안전하게 처리해야 하는 경우 작업이 조금 더 늘어납니다.

iw dev wlp3s0 scan | 
sed 's/^[^ \t]/\n&/' |
awk -v RS= -v target="$ssid" '{
    ssid = substr($0, index($0, "\tSSID:"));
    ssid = substr(ssid, 1, index(ssid, "\n"));
    if (ssid == target) print;
}'

관련 정보