shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] gerar string


From: Herbert Alexander Faleiros
Subject: Re: [shell-script] gerar string
Date: Wed, 25 Jan 2006 18:01:33 -0200
User-agent: KMail/1.9

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]