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

関連情報