![iw dev wlp3s0 스캔의 출력을 제한하는 방법은 무엇입니까?](https://linux55.com/image/45542/iw%20dev%20wlp3s0%20%EC%8A%A4%EC%BA%94%EC%9D%98%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20%EC%A0%9C%ED%95%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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;
}'