sudo iwlist wlan0 scan | grep ESSID > essid.txt (txt 파일에 ESSID라는 단어가 포함되지 않은 파일을 내보내는 방법)

sudo iwlist wlan0 scan | grep ESSID > essid.txt (txt 파일에 ESSID라는 단어가 포함되지 않은 파일을 내보내는 방법)

그래서 내 목표는 내가 작업 중인 또 다른 질문에 답하는 것입니다. 이것은개방형 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-lESSID:(.*)$&& 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가 있는 필드만 인쇄합니다.

관련 정보