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
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.
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é.