grep 在 nc 输出中不匹配

Jui*_*icy 4 grep terminal netcat

我正在使用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
...
Run Code Online (Sandbox Code Playgroud)

(我也考虑过将错误消息发送到/dev/nullnc -zv localhost 31000-32000 2>/dev/null。但在那种情况下,没有任何结果。似乎所有nc端口状态消息都是错误/调试消息)

cuo*_*glm 13

nc 将其输出写入标准错误,您需要:

nc -zvv localhost 31000-32000 2>&1 | grep succeeded
Run Code Online (Sandbox Code Playgroud)

2>&1将标准错误重定向到标准输出,所以你可以再管它grep