Fala Thiago,
Um one-liner sem *loop* é sempre mais rápido. ;)

*grep -f <(cat ativos.txt | xargs -i echo ^{}) /etc/passwd*

Explico:
A opção* -f arquivo, *do* grep *pesquisa a expressão regular contida em
arquivo no /etc/passwd. Poderia ter simplesmente feito* grep -f ativos.txt
/etc/passwd, *porém preferi colocar um circunflexo antes de cada registro de
ativos.txt, de forma que a pesquisa fosse feita somente no inicio de cada
registro do /etc/passwd.

Para fazer isso usei a construção* <(...) *que executa um cmd em um arquivo
de named pipe temporário (/dev/fd/63) e usei o xargs que com a opção -i,
substitui o par de chaves por cada campo que veio do pipe (stdin).
-- 
Abração,
Julio
*Cursos de Shell e Zenity nos finais de semana:
- Em SP ligue (11) 2125-4747;
- Em DF ligue (61) 3223-3000 (Turma prevista para 09/05);
- No RJ darei um treinamento em julho (p/ detalhes ligue (21) 2561-0867);
- Turmas fechadas em outras cidades ligue (21) 8112-9988*


2009/5/13 thiagomz <thiagozerbin...@yahoo.com.br>

>
>
> Pessoal,
>
> Tenho um arquivo com usuarios ativos em meu unix (ativos.txt) que
> obtive em meu banco de dados do RH, meu passwd e shadow possuem muitos
> usuarios inativos (demitidos, etc...) que quero excluir do passwd, como
> eu poderia excluir todos usuarios que nao estejam em ativos.txt.
>
> ativos.txt
> aaa
> aagai
> aal
> aalsi
> aamor
> aasob
> aasv
> abn
> absi
>
> Obrigado,
>
> thiagomz
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a