Как вы можете получить количество процессов, в которых запущена программа?

Прежде всего, я сохраняю в файле все рабочие процессы.

ps -el > file1

Моя идея - подсчитать количество строк в файле1, где присутствует vi.

Я попробовал что-то вроде wc -l | grep vi file1

. Как правильный способ сделать это?

1
задан 8 June 2016 в 16:10

2 ответа

Ваш код почти работает, вам просто нужно изменить

wc -l | grep vi file1

на

grep vi file1 | wc -l

Оператор трубы использует вывод программы слева в качестве входа для программа справа.

1
ответ дан 24 May 2018 в 09:39
  • 1
    только grepping для vi будет соответствовать всем services ... – Sylvain Pineau 9 April 2014 в 13:48

Почему бы не использовать pgrep:

pgrep "^vi" | wc -l

pgrep man page:

СИНТАКСИС
   pgrep [options] pattern
ОПИСАНИЕ
   pgrep looks through the currently running processes and lists the process 
   IDs which matches the selection criteria to stdout.

EDIT: (Использование файл):

ps aux > file1
awk '{ print $11 }' file1 | egrep '^vi' | wc -l
0
ответ дан 24 May 2018 в 09:39
  • 1
    Спасибо, но знаете ли вы, как я могу сделать это с файлом? – user253956 9 April 2014 в 13:44
  • 2
    Я обновил свой ответ – Sylvain Pineau 9 April 2014 в 13:56
  • 3
    @SylvainPineau Я думаю, что op хочет отображать строки, где vi представлен в любой позиции. – Avinash Raj 9 April 2014 в 14:10
  • 4
    Humm, в этом случае для соответствия всем "vi" шаблонов, удалите " " перед " ^ vi " так что вы будете соответствовать не только vi, vim, но также сервисам, таким как service-service-service-service-service-only-networkapps-service. – Sylvain Pineau 9 April 2014 в 14:18

Другие вопросы по тегам:

Похожие вопросы: