On Wednesday 25 January 2006 11:28, Celso Viana wrote:
> Já tenho o arquivo com mais de 300 usuários e gostaria apenas de
> preencher o campo de senha; terei que usar o sed? no arquivo real, com
> delimitador ";" o campo de senha é o 4º campo.

Ok, vê se é algo do tipo que precisa:

$ ./senhas

$ cat lista.orig | head -5
sujeito001;campo_2;campo_3;senha;campo_5;campo_6;campo_n
sujeito002;campo_2;campo_3;senha;campo_5;campo_6;campo_n
sujeito003;campo_2;campo_3;senha;campo_5;campo_6;campo_n
sujeito004;campo_2;campo_3;senha;campo_5;campo_6;campo_n
sujeito005;campo_2;campo_3;senha;campo_5;campo_6;campo_n

$ cat lista.new | head -5
sujeito001;campo_2;campo_3;emdltk;campo_5;campo_6;campo_n
sujeito002;campo_2;campo_3;hpfoem;campo_5;campo_6;campo_n
sujeito003;campo_2;campo_3;kaiyhx;campo_5;campo_6;campo_n
sujeito004;campo_2;campo_3;udtbra;campo_5;campo_6;campo_n
sujeito005;campo_2;campo_3;xnwmud;campo_5;campo_6;campo_n

$ cat senhas
#!/bin/sh

# Ignore este laço, só o utilizei p/ gerar o arquivo
# com os dados (simular o formato que você descreveu).
for i in `seq 300`; do
  printf 'sujeito%03d;campo_2;campo_3;senha;campo_5;campo_6;campo_n\n' $i
done >> lista.orig

ALFA=abcdefghijklmnopqrstuvwxyz

# Quantas senhas
QUANTIDADE=8

# Comprimento das senhas
COMPRIMENTO=6

for j in `cat lista.orig`; do
  for i in `seq $COMPRIMENTO`; do
    SENHA=$SENHA${ALFA:`expr $RANDOM % 26`:1};
  done

  echo $j | sed -r 's/^([^;]+;[^;]+;[^;]+);[^;.]+;(.*$)/\1;'$SENHA';\2/' >> 
lista.new

  SENHA=
done

Até,

Herbert.

PS1 - só adaptei o script que já tinha feito.

PS2 - creio que dê para enxugar essa ER, no caso ela pega os três primeiros 
campos (delimitadors por ';') e depois do quinto em diante, inserindo a senha 
no quarto campo.

PS3 - sobre $RANDOM: http://www.tldp.org/LDP/abs/html/randomvar.html


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a