Script

Résolu
Eley Messages postés 188 Statut Membre -  
Eley Messages postés 188 Statut Membre -
Bonjour,

Bonjour je cherche à créer un fichier . txt de ce type

moi:remoi:remoi
moi:remoi:remoi
moi:remoi:remoi

seulement je possede déjà un fichier remoi:remoi
je voudrais créer un script qui automatiserait la copie de moi: à coté de remoi:remoi
dans ce même fichier texte

merci de vos réponses je suis novice

--

L.A Guette de Haut
Configuration: Linux
Firefox 3.0

6 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    lami20j@debian:~/trash$ cat eley
    remoi:remoi
    n'importe quoi
    remoi:remoi
    remoi:remoi
    n'importe qui
    remoi:remoi
    au milieu remoi:remoi pour voir
    à la fin pour voir remoi:remoi
    
    lami20j@debian:~/trash$ sed -i.orig '/remoi:remoi/ s/\(remoi:remoi\)/moi:\1/' eley
    lami20j@debian:~/trash$ cat eley
    moi:remoi:remoi
    n'importe quoi
    moi:remoi:remoi
    moi:remoi:remoi
    n'importe qui
    moi:remoi:remoi
    au milieu moi:remoi:remoi pour voir
    à la fin pour voir moi:remoi:remoi
    
    lami20j@debian:~/trash$ cat eley.orig
    remoi:remoi
    n'importe quoi
    remoi:remoi
    remoi:remoi
    n'importe qui
    remoi:remoi
    au milieu remoi:remoi pour voir
    à la fin pour voir remoi:remoi

    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      Espèce de faux perlien, elle est trop longue ton expression avec "sed" :
      sed '/remoi:remoi/ s//moi:&/'
      pffffffffffffffffffff ;-DDD
      0
      1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Salut,

        je savais qu'il y a un moyen de faire plus court, mais à cette heure ci, je n'ai pas envie de lire tes romans concernant le sed ;-)
        en plus je savais que tu interviendras, donc pourquoi se casser la tête ;-)))

        merci
        0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    avec Perl

    lami20j@debian:~/trash$ cat eley
    remoi:remoi
    n'importe quoi
    remoi:remoi
    remoi:remoi
    n'importe qui
    remoi:remoi
    au milieu remoi:remoi pour voir
    à la fin pour voir remoi:remoi
    
    lami20j@debian:~/trash$ perl -pi.orig -e 's/(?=remoi:remoi)/moi:/' eley
    lami20j@debian:~/trash$ cat eley
    moi:remoi:remoi
    n'importe quoi
    moi:remoi:remoi
    moi:remoi:remoi
    n'importe qui
    moi:remoi:remoi
    au milieu moi:remoi:remoi pour voir
    à la fin pour voir moi:remoi:remoi
    
    lami20j@debian:~/trash$ cat eley.orig
    remoi:remoi
    n'importe quoi
    remoi:remoi
    remoi:remoi
    n'importe qui
    remoi:remoi
    au milieu remoi:remoi pour voir
    à la fin pour voir remoi:remoi
    
    0
  3. Eley Messages postés 188 Statut Membre
     
    merci pour vos réponses mais en faites voilà j'ai un exemple de script sous la main , ce dernier genere à la foi des mot de passe et les imbrique dans un fichier de sortie exemple.txt

    ============================================================================

    #!/usr/bin/perl
    #
    # gen.pl Password generator by nuTshell
    # <carloslack at gmail dot com>
    # http://nutshell.gotfault.net
    #
    # Part of eland(c) by posidron http://posidron.gotfault.net
    #
    # Gen was originally written to be part of Eland and then i`ve
    # decided to publish this "user" version.
    #
    # Usage eg:
    # $ ./gen.pl -all 8 3 join users.txt
    # [!] Generating: Ge|{R[12
    # [!] Generating: ;?#MMT%A
    # [!] Generating: k8bW$RHx
    #
    # Passwords number: 3
    # Passwords length: 8
    # Output file pass_all.txt created
    # Combo file combo.txt created
    # $ cat users.txt
    # root
    # admin
    # you
    # $ cat combo.txt
    # root:Ge|{R[12
    # root:;?#MMT%A
    # root:k8bW$RHx
    # admin:Ge|{R[12
    # admin:;?#MMT%A
    # admin:k8bW$RHx
    # you:Ge|{R[12
    # you:;?#MMT%A
    # you:k8bW$RHx
    #
    use strict;
    use Switch;

    sub usage() {
    printf("Gen by nuTshell <http://nutshell.gotfault.net>\n");
    printf("Usage: $0 options parameters\n");
    printf("Options are:\n");
    printf("-lower [gen lower case passwords only]\n");
    printf("-uplowerchar [gen upper case passwords only]\n");
    printf("-uplowerint [gen upper case/lower case/integer passwords only]\n");
    printf("-uplower [gen upper case/lower case passwords only]\n");
    printf("-upper [gen upper case passwords only]\n");
    printf("-int [gen integer passwords only]\n");
    printf("-lowerint [gen lower case/integer passwords only]\n");
    printf("-upint [gen upper case/integer passwords only]\n");
    printf("-lowerchar [gen lower case/special caracters passwords only]\n");
    printf("-upchar [gen upper case/special caracters passwords only]\n");
    printf("-all [FULL! gen all passwords options]\n");
    printf("Parameters are:\n");
    printf("passowrd length (required integer)\n");
    printf("number of passwords (required integer)\n");
    printf("join (literal optional)\n");
    printf("userfile name (optional)\n");
    exit(0)
    }

    my @lower =
    split(",","a,b,c,d,e,f,g,h,i,j,l,m,n,o,p,q,r,s,t,u,v,x,z,y,w,k");

    my @upper =
    split(",","A,B,C,D,E,F,G,H,I,J,L,M,N,O,P,Q,R,S,T,U,V,X,Z,Y,W,K");

    my @uplower =
    split("," ,"b,c,d,e,f,g,h,i,j,l,m,n,o,p,q,r,s,t,u,v,x,z,y,w,k,A,B,C," . "D,E,F,G,H,I,J,L,M,N,O,P,Q,R,S,T,U,V,X,Z,Y,W,K");

    my @uplowerchar =
    split("=", "#=*=,=.=;=:=_=-=+=!=\$=%=&=/=|=?={=}=[=]=(=)=" . "
    -a=b=c=d=e=f=g=h=i=j=l=m=n=o=p=q=r=s=t=u=v=x=z=y=" . "w=k=A=B=C=D=E=F=G=H=I=J=L=M=N=O=P=Q=R=S=T=U=V=X=Z=Y=W=K");

    my @uplowerint =
    split(",","1,2,3,4,5,6,7,8,9,0,b,c,d,e,f,g,h,i,j,l,m,n,o,p,q,r," . "s,t,u,v,x,z,y,w,k,A,B,C,D,E,F,G,H,I,J,L,M,N,O,P,Q,R,S,T,U,V," . "X,Z,Y,W,K");

    my @int = split(",","1,2,3,4,5,6,7,8,9,0");

    my @lowerint =
    split(",","1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i,j,l,m,n," . "o,p,q,r,s,t,u,v,x,z,y,w,k");

    my @upint =
    split(",","1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F,G,H,I,J,L,M," . "N,O,P,Q,R,S,T,U,V,X,Z,Y,W,K");

    my @lowerchar =
    split("=","a=b=c=d=e=f=g=h=i=j=l=m=n=o=p=q=r" . "=s=t=u=v=x=z=y=w=k=#=*=,=.=;=:=_=-=+=!=" . "\$=%=&=/=|=?={=}=[=]=(=)=");

    my @upchar =
    split("=","A=B=C=D=E=F=G=H=I=J=L=M=N=O=P=Q=" . "R=S=T=U=V=X=Z=Y=W=K=#=*=,=.=;=:=_=-=+=!=" . "\$=%=&=/=|=?={=}=[=]=(=)=");

    my @all =
    split("=","1=2=3=4=5=6=7=8=9=0=a=b=c=d=e=f=" . "g=h=i=j=l=m=n=o=p=q=r=s=t=u=v=x=z=y=w=k=" . "#=*=,=.=;=:=_=-=+=!=\$=%=&=/=|=?={=}=[=]=(=)" . "=A=B=C=D=E=F=G=H=I=J=L=M=N=O=P=Q=R=S=T" . "=U=V=X=Z=Y=W=K=");

    my $passoutputfile;
    my $var;
    my $x;
    my $usersfile;
    my @array;

    my $ARRAY = $ARGV[0] or die &usage;
    my $LOOPLENGTH = $ARGV[1] or die &usage;
    my $PASSWORDNUMBER = $ARGV[2] or die &usage;

    switch($ARRAY) {
    case "-all" {@array = @all ; $passoutputfile = "pass_all.txt"}
    case "-upchar" {@array = @upchar ; $passoutputfile = "pass_upchar.txt"}
    case "-lowerchar" {@array = @lowerchar ; $passoutputfile =
    "pass_lowerchar.txt"}
    case "-upint" {@array = @upint ; $passoutputfile = "pass_upint.txt"}
    case "-lowerint" {@array = @lowerint ; $passoutputfile =
    "pass_lowerint.txt"}
    case "-int" {@array = @int ; $passoutputfile = "pass_int.txt"}
    case "-upper" {@array = @upper ; $passoutputfile = "pass_upper.txt"}
    case "-lower" {@array = @lower ; $passoutputfile = "pass_lower.txt"}
    case "-uplower" {@array = @uplower ; $passoutputfile = "pass_uplower.txt"}
    case "-uplowerchar" {@array = @uplowerchar ; $passoutputfile =
    "pass_uplowerchar.txt"}
    case "-uplowerint" {@array = @uplowerint ; $passoutputfile =
    "pass_uplowerint.txt"}
    else {&usage}
    }

    sub genpass () {

    open(PASSFILE, ">$passoutputfile") or die "$!\n";

    for($x=0;$x<$PASSWORDNUMBER;$x++) {
    foreach(1..$LOOPLENGTH) {
    my $array = $array[rand(@array)] ;
    $var .= "$array";
    }
    print("[!] Generating: $var\n");
    print(PASSFILE "$var\n");
    $var = "";
    }
    close(PASSFILE);
    printf "\nPasswords number: $PASSWORDNUMBER\n";
    printf "Passwords length: $LOOPLENGTH\n";
    printf "Output file $passoutputfile created\n";
    }
    &genpass;

    sub joinfiles (){
    my @loop1 = `/bin/cat $usersfile` or die "$\n";
    my @loop2 = `/bin/cat $passoutputfile` or die "$\n";
    open(COMBO, ">combo.txt") or die "$!\n";
    foreach my $user (@loop1) {
    foreach (@loop2) {
    chomp($user);
    print(COMBO "$user:$_");
    }
    }
    close(COMBO);
    printf("Combo file combo.txt created\n");
    }

    if ($ARGV[3] eq "join") {
    if($ARGV[4]) {$usersfile = $ARGV[4]}else{$usersfile = "users.txt"}
    &joinfiles
    }
    #eof

    et moi je voudrais qu'il ne me genere pas de mot de passe mais qu'il se contente uniquement de print(COMBO "$user:$_");

    0
  4. Eley Messages postés 188 Statut Membre
     
    UN grand , très grand merci à lami20j : perl -pi.orig -e 's/(?=)/example:/' combofile.txt
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    tout ça pour générer un mot de passe ?!
    on peut le faire dans une seule ligne de code
    http://www.commentcamarche.net/forum/affich 2335882 shell generer une chaine aleatoire#1

    par exemple ça

    my @lower =
    split(",","a,b,c,d,e,f,g,h,i,j,l,m,n,o,p,q,r,­s,t,u,v,x,z,y,w,k");

    my @upper =
    split(",","A,B,C,D,E,F,G,H,I,J,L,M,N,O,P,Q,R,­S,T,U,V,X,Z,Y,W,K");

    my @uplower =
    split("," ,"b,c,d,e,f,g,h,i,j,l,m,n,o,p,q,r,s,t,u,v,x,z,y,w,k,A,B­,C," . "D,E,F,G,H,I,J,L,M,N,O,P,Q,R,S,T,U,V,X,Z,Y,W,K");


    on peut l'écrire comme ça
    my @lower = 'a' .. 'z';
    my @upper = 'A' .. 'Z';
    my @uplower = ('a' .. 'z','A' .. 'Z');
    c'est plus court et plus efficace ;-)

    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      FAINÉANT ! ;-DD
      0
  7. Eley Messages postés 188 Statut Membre
     
    rire
    0