그래서 내 목표는 내가 작업 중인 또 다른 질문에 답하는 것입니다. 이것은개방형 Wi-Fi에 연결. 현재 Wi-Fi 연결이 하나만 있다는 것을 알고 결과를 내보내고 싶기 때문에 매우 가깝습니다.
sudo iwlist wlan0 scan | grep ESSID
텍스트 파일로. 현재 출력은 다음과 같습니다:
ESSID: "MyNetworkSSID" # Which would end up being in the file
내가 원하는 것은 단지 표시되는 텍스트 파일입니다.
"내 네트워크 SSID"
답변1
귀찮게 하지 마세요 grep
. 다음으로 직접 파이프됨 awk
:
$ sudo iwlist wlan0 scan | awk -F ':' '/ESSID:/ {print $2;}'
"BTWifi-with-FON"
"BTHub5-FTQN"
"BTWifi-X"
"4GEEOnetouchY800z_2DEB"
정규식 검색을 수행 ESSID:
하고 -F ':'
콜론( )으로 줄을 분할한 다음 해당 분할( print $2
)의 두 번째 요소를 인쇄합니다.
또는 파이프를 통해 perl
:
$ sudo iwlist wlan0 scan | perl -nle '/ESSID:(.*)$/ && print $1'
이렇게 하면 명령( )이 입력 perl
( )의 각 줄에서 실행되고 각 줄 끝에 개행 문자( )가 추가됩니다. 이 명령은 나머지 라인( )을 검색하여 캡처하는 정규식입니다. 일치하는 항목이 발견되면 캡처()를 인쇄합니다.-e
-n
-l
ESSID:
(.*)$
&& print $1
답변2
Hazar, 이것은 작동하지만 큰따옴표와 관련이 있고 ESSID라는 단어를 제외해야 하기 때문에 더 구체적입니다.
sudo iwlist wlan0 scan | grep ESSID | grep -o '"[^"]\+"' >> essid.txt
답변3
노력하다
sudo iwlist wlan0 scan | grep -i essid | awk -F'"' '{ print $2 }' >> essid.txt
grep
이는 의 출력을 파이프하고 awk
구분 기호를 사용하며 "
ESSID가 있는 필드만 인쇄합니다.