Вы можете изменить количество grep строк (называемых "контекстом") с помощью параметров -C [num] или --context=[num] .
Обычно по умолчанию для grep контекст без контекста, поэтому используемая команда должна быть в порядке. Вы можете заставить его показывать только совпадающие строки с помощью service --status-all | grep + -C 0 .
Чтобы исключить совпадающие строки, используйте -v или --invert-match . Таким образом, вы можете передать исходную команду через | grep -v '[ ?' | grep -v '[ -' чтобы избавиться от строк с - или ? как их статус. Вы также можете объединить несколько строк соответствия, используя экранированные "или" (символ канала), например, grep -v '[ ?\|[ -' .
Однако, поскольку service по какой-то причине направляет свой вывод в stderr вместо обычного stdout , выходные потоки должны быть объединены с |& для правильной работы grep . Таким образом, рабочей командой здесь будет service --status-all |& grep + .