Obtendo uma lista de usuários por grepping / etc / passwd

2

Para uma tarefa de casa, eu preciso usar grep para analisar /etc/passwd e obter uma lista de todos os usuários (apenas seus nomes de usuário, nada mais). Ele deve usar um pipe e os resultados devem acabar no arquivo allusers . Isso é o que eu tenho até agora:

grep -i etc/password | .... >allusers 

O que estou perdendo?

    
por moon 19.02.2013 / 04:28

5 respostas

11

Dica

Cada campo em uma linha /etc/passwd é separado por dois pontos, e o nome de usuário é o primeiro campo, então você precisa filtrar cada linha para mostrar apenas os caracteres até os primeiros dois pontos

Resposta

grep não está nem perto da melhor ferramenta para fazer isso, mas se você precisar usá-la, isso funcionará:

grep -oE '^[^:]+' /etc/passwd

-o diz para retornar apenas a parte da linha correspondente. -E ativa as expressões regulares estendidas para que o + funcione mais tarde. ^ corresponde ao início da linha, [^:] corresponde a qualquer coisa, exceto dois pontos, e + significa tantos caracteres quanto possível. Então, isso vai combinar o início de cada linha até o primeiro cólon

Se você puder usar outras ferramentas além de grep , veja outras maneiras geralmente melhores de fazer isso:

cut -d: -f1 /etc/passwd
sed 's/:.*//' /etc/passwd
awk -F: '{print $1}' /etc/passwd

Você pode redirecionar os resultados de qualquer um deles para allusers usando > allusers , como você tem em seu exemplo

    
por 19.02.2013 / 04:44
0

O grep não é adequado para esta situação, tente obter o arquivo de senha com getent e analise-o com awk (conteúdo separado por dois pontos),

getent passwd | awk -F ':' '{print $1}' > allusers

    
por 19.02.2013 / 04:42
0

cat /etc/passwd | awk -F : '{print $1}' > alluser.txt

    
por 19.02.2013 / 12:43
0
grep -o '^[a-zA-Z]*:' /etc/passwd

funciona para mim..imprime apenas os nomes de usuários cujos nomes começam com a-zA-Z ...

    
por 21.09.2013 / 09:31
0

Estou usando:

grep -E 1[0-9]{3}  /etc/passwd | sed s/:/\ / | awk '{print $1}'

Apenas para usuários não integrados ou internos.

    
por 03.05.2018 / 12:37