Partage
  • Partager sur Facebook
  • Partager sur Twitter

Creer des utilisateurs avec un nom compose

    9 décembre 2023 à 17:03:13

    Bonjour, je souhaiterai faire un script qui, avec un fichier csv, creer des répertoires pour chaqune des personnes présente dans le csv, sauf que probleme, certaines on un nom composé, et je souhaiterai pouvoir mettre un tiret car on ne peut pas mettre d'espace. voici le fichier (nanti.csv) en question :

    # fichier nanti.csv :
    
    forename;name;password;department
    Elon;Musk;$220B;Technology
    Bernard;Arnault;$172B;Consumer
    Jeff;Bezos;$170B;Technology
    Bill;Gates;$134B;Technology
    Larry;Ellison;$131B;Technology
    Steve;Ballmer;$130B;Technology
    Mark;Zuckerberg;$123B;Technology
    Larry;Page;$123B;Technology
    Warren;Buffett;$121B;Diversified
    Sergey;Brin;$117B;Technology
    Carlos;Slim;$92.8B;Diversified
    Francoise;Bettencourt Meyers;$92.5B;Consumer
    Mukesh;Ambani;$87.5B;Energy
    Amancio;Ortega;$80.1B;Retail
    Jim;Walton;$70.5B;Retail
    John;Walton;$69.3B;Retail
    Julia;Walton;$68.2B;Retail
    Michael;Dell;$67.9B;Technology
    Zhong;Shanshan;$65.0B;Diversified
    Julia;Flesher Koch;$64.4B;Industrial
    Charles;Koch;$60.5B;Industrial
    Gautam;Adani;$59.3B;Industrial
    Jacqueline;Badger Mars;$47.0B;Food & Beverage
    John;Mars;$47.0B;Food & Beverage
    Jensen;Huang;$44.8B;Technology
    Alain;Wertheimer;$44.4B;Consumer
    Gerard;Wertheimer;$44.4B;Consumer
    Zhang;Yiming;$42.3B;Technology
    Colin;Huang;$41.9B;Technology
    Phil;Knight;$41.3B;Consumer
    Len;Blavatnik;$38.7B;Diversified
    Klaus-Michael;Kuehne;$38.1B;Industrial
    Tadashi;Yanai;$38.0B;Retail
    Ma;Huateng;$37.6B;Technology
    William;Ding;$36.4B;Technology
    Ken;Griffin;$36.0B;Finance
    Stephen;Schwarzman;$36.0B;Finance
    Francois;Pinault;$35.3B;Consumer
    MacKenzie;Scott;$34.1B;Technology
    Miriam;Adelson;$33.6B;Entertainment
    Giovanni;Ferrero;$33.3B;Food & Beverage
    Abigail;Johnson;$33.2B;Finance
    Shapoor;Mistry;$32.4B;Industrial
    Vladimir;Potanin;$31.1B;Commodities
    Shiv;Nadar;$30.8B;Technology
    Dieter;Schwarz;$30.6B;Retail
    German;Larrea;$30.5B;Commodities
    Jack;Ma;$29.2B;Technology
    James;Simons;$28.5B;Finance
    Jeff;Yass;$28.4B;Finance
    Li;Ka-shing;$28.0B;Real Estate
    Leonid;Mikhelson;$27.8B;Energy
    Low;Tuck Kwong;$27.6B;Energy
    Susanne;Klatten;$26.9B;Industrial
    Eric;Schmidt;$26.8B;Technology
    Zeng;Yuqun;$26.5B;Industrial
    Andrew;Forrest;$25.8B;Commodities
    Lukas;Walton;$24.8B;Retail
    Vagit;Alekperov;$24.6B;Energy
    Thomas;Peterffy;$24.5B;Finance
    Iris;Fontbona;$24.4B;Commodities
    Reinhold;Wuerth;$24.0B;Industrial
    Gina;Rinehart;$24.0B;Commodities
    Vladimir;Lisin;$23.9B;Industrial
    Elaine;Marshall;$23.8B;Industrial
    Prajogo;Pangestu;$23.7B;Energy
    Takemitsu;Takizaki;$23.5B;Technology
    Changpeng;Zhao;$23.5B;Finance
    Stefan;Quandt;$23.1B;Industrial
    Azim;Premji;$23.0B;Technology
    He;Xiangjian;$22.9B;Consumer
    Ernesto;Bertarelli;$22.7B;Diversified
    Thomas;Frist;$22.6B;Technology
    Jorge;Paulo Lemann;$22.5B;Food & Beverage
    Eyal;Ofer;$22.0B;Diversified
    Henry;Cheng;$21.8B;Retail
    Budi;Hartono;$21.7B;Diversified
    Xu;Yangtian;$21.5B;Retail
    Dan;Gilbert;$20.8B;Real Estate
    Michael;Hartono;$20.6B;Diversified
    Alisher;Usmanov;$20.5B;Diversified
    Mark;Mateschitz;$20.3B;Food & Beverage
    Gianluigi;Aponte;$20.2B;Services
    Lee;Shau Kee;$20.0B;Real Estate
    Idan;Ofer;$20.0B;Energy
    Alexey;Mordashov;$19.9B;Industrial
    Liu;Yongxing;$19.7B;Industrial
    Dilip;Shanghvi;$19.6B;Health Care
    Dustin;Moskovitz;$19.4B;Technology
    Vicky;Safra;$19.1B;Finance
    Rodolphe;Saade;$18.6B;Services
    Eduardo;Saverin;$18.6B;Technology
    John;Menard;$18.5B;Retail
    Stefan;Persson;$18.4B;Retail
    Radhakishan;Damani;$18.1B;Retail
    Lakshmi;Mittal;$18.1B;Commodities
    James;Dyson;$18.0B;Consumer
    Savitri;Jindal;$17.8B;Commodities
    Wang;Chuan-Fu;$17.8B;Consumer
    Hasso;Plattner;$17.7B;Technology
    
    
    #voici le script que j'ai commencé : 
    #!/bin/bash
    # Lecture du fichier CSV
    while IFS=";" read -r prenom nom password department
    do
        # Génération du login
        login="${prenom:0:1}${nom:0:7}"
        # Si le nom est composé, on met un tiret entre les deux noms
        if [[ "$nom" == *";"* ]]; then
            nom_compose="${nom// /-}"  # Remplace les espaces par des tirets
            login="${prenom:0:1}${nom_compose:0:7}"
        fi
        count=1
        original_login=$login  # Sauvegarde du login original
        while id "$login" &>/dev/null; do
            login="${original_login}$(printf '%02d' "$count")"
            ((count++))
        done
        # Création de l'utilisateur
        useradd -m -d "/home/$login" -s /bin/bash -c "Utilisateur $prenom $nom" -p "$(openssl passwd -1 $password)" "$login"
    done < nanti.csv


     
    si qqun pourrait m'aider svp !

    -
    Edité par Flykii 10 décembre 2023 à 23:51:43

    • Partager sur Facebook
    • Partager sur Twitter
      10 décembre 2023 à 17:56:37

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code </>

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton  </> de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises ><pre class="brush: php;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.


      • Partager sur Facebook
      • Partager sur Twitter

      Creer des utilisateurs avec un nom compose

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown