Altere seu comando para isto:
nc -zv 192.168.1.1 1-100 2>&1 | grep succeeded
2>&1
faz com que stderr
de um programa seja gravado no mesmo descritor de arquivo como stdout
. nc
escreve para stderr
por padrão, o pipe obterá apenas stdout
, portanto o grep perderá os dados.
Veja a seção 3.5 aqui para mais informações Tudo sobre o redirecionamento .