Você pode alterar a quantidade de linhas circunvizinhas grep saídas (chamadas de "contexto") com as opções -C [num] ou --context=[num] .
Normalmente, a opção padrão para grep é imprimir sem contexto, então o comando que você usou deve ficar bem. Você pode forçá-lo a mostrar apenas as linhas correspondentes por service --status-all | grep + -C 0 .
Para excluir linhas correspondentes, use -v ou --invert-match . Assim, você pode canalizar o comando original através de | grep -v '[ ?' | grep -v '[ -' para se livrar das linhas com - ou ? como seu status. Você também pode combinar várias sequências de correspondência usando "ou" escapado (o símbolo de pipe), como grep -v '[ ?\|[ -' .
No entanto, como service direciona sua saída para stderr em vez do normalstdout, os fluxos de saída precisam ser combinados com |& para que o grep funcione corretamente. Então, o comando de trabalho aqui seria service --status-all |& grep + .