grep이 nc 출력에서 ​​일치하지 않습니다

grep이 nc 출력에서 ​​일치하지 않습니다

예전에는 열린 포트를 스캔 했는데 nc스캔 범위가 매우 넓고 결과가 너무 많이 표시되었습니다. 어떤 이유로 grep"성공"이라는 단어를 사용해도 작동하지 않습니다.

$ nc -zv localhost 31000-32000 | grep succeeded
...
nc: connect to localhost port 31957 (tcp) failed: Connection refused
nc: connect to localhost port 31958 (tcp) failed: Connection refused
nc: connect to localhost port 31959 (tcp) failed: Connection refused
Connection to localhost 31960 port [tcp/*] succeeded!
nc: connect to localhost port 31961 (tcp) failed: Connection refused
nc: connect to localhost port 31962 (tcp) failed: Connection refused
nc: connect to localhost port 31963 (tcp) failed: Connection refused
nc: connect to localhost port 31964 (tcp) failed: Connection refused
...

/dev/null(다음으로 오류 메시지를 보내는 것도 고려했습니다 nc -zv localhost 31000-32000 2>/dev/null. 하지만 이 경우에는 아무것도 나오지 않았습니다. 모든 nc포트 상태 메시지는 오류/디버그 메시지인 것 같습니다)

답변1

nc표준 오류에 출력을 쓰려면 다음이 필요합니다.

nc -zvv localhost 31000-32000 2>&1 | grep succeeded

2>&1표준 오류를 표준 출력으로 리디렉션 하여 grep.

관련 정보