Использование grep и wc для поиска и подсчета соответствующих процессов

Я использую ps для перечисления всех процессов, запущенных на машине, к которой я подключен, ищу в них свои собственные процессы, а затем печатаю количество запущенных процессов, например:

ps -Af | grep '^mkuhlman' | wc -l

Проблема в том, что, сверяясь с фактическим списком процессов, я запускаю только 8, но wc перечисляет 9 процессов. Что я делаю неправильно?

Чтобы уточнить, я ищу не совпадения с процессами, а совпадения с моим собственным именем пользователя.


person Maggie K    schedule 05.09.2017    source источник
comment
ps .. | grep '^[m]kuhlman' | wc -l хотя неправильный путь (который вы будете видеть каждый день) это ps .. | grep ... | grep -v grep | wc -l . Удачи.   -  person shellter    schedule 05.09.2017
comment
Возможный дубликат Поиск количества процессов в Linux через командную строку   -  person codeforester    schedule 05.09.2017


Ответы (2)


В вашем конвейере есть несколько процессов, и вы их считаете.

Запустить ps можно, но pgrep вам может быть больше. У него есть справочная страница. (И ps -A кажется несовместимым с поиском собственного имени пользователя.)

person J_H    schedule 05.09.2017
comment
К сожалению, мой учитель хочет, чтобы мы использовали эти конкретные команды. Я просмотрел все наши заметки и справочные страницы для каждой из них и не могу понять, как это исправить. - person Maggie K; 05.09.2017
comment
Подумайте о том, чтобы сделать ps -Af > /tmp/proc. Тогда вам не нужно беспокоиться о grep ‹ proc или grep -v ps или wc или любом другом конвейере обработки, отображающемся в результате. - person J_H; 05.09.2017

Хотя grep -v grep будет работать в большинстве случаев, это может привести к неправильному выводу, поскольку он исключает все процессы grep, а не только те, которые связаны с командной строкой ps. Итак, вы могли бы сделать это вместо этого:

ps -Af | grep -E '^mkuhlman|__unique__' | grep -v __unique__

где __unique__ — уникальная строка, которая вряд ли будет использоваться в командной строке других пользовательских процессов.


Смотрите также:

person codeforester    schedule 05.09.2017