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 entre les 2 noms de familles
#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 (donc c'est ici le probleme)
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
Vous devriez chercher un espace pour identifier les noms composés.
Le login est généré en prenant la première lettre du prénom et les 7 premières lettres du nom. Si vous voulez gérer les noms composés avec un tiret, vous devez appliquer cette logique après avoir remplacé les espaces par des tirets.
Placez la ligne nom_compose="${nom// /-}" à l'extérieur de la condition
Dans votre script, le login est généré avant le traitement des noms composés. Cela signifie que pour les noms composés, le login ne tiendra pas compte du remplacement des espaces par des tirets.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
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é.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)