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]