Seu código quase funciona, você só precisa mudar
wc -l | grep vi file1
para
grep vi file1 | wc -l
O operador de pipe usa a saída do programa à esquerda como entrada para o programa à direita.
Primeiro, salvei em um arquivo todos os processos de trabalho.
ps -el > file1
Minha ideia é contar o número de linhas no arquivo1 onde o vi está presente.
Eu tentei algo como wc -l | grep vi file1
Como é a maneira correta de fazer isso?
Seu código quase funciona, você só precisa mudar
wc -l | grep vi file1
para
grep vi file1 | wc -l
O operador de pipe usa a saída do programa à esquerda como entrada para o programa à direita.
Por que não usar pgrep
:
pgrep "^vi" | wc -l
página man do pgrep:
SINOPSE
pgrep [options] pattern
DESCRIÇÃO
pgrep looks through the currently running processes and lists the process IDs which matches the selection criteria to stdout.
EDITAR : (usando o arquivo):
ps aux > file1
awk '{ print }' file1 | egrep '^vi' | wc -l