Supprimer,copier dans un fichier
larissatouko
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
larissatouko Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
larissatouko Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis débutante en unix(ksh) .j'ai un fichier ayant une liste de nom et prenom comme ci dessous
# commentaire
nom1 prénom1
nom2 prénom2
# commentaire
nom3 prénom3
...
j'aimerais
1) les affichées a l'ecran jai fait
sous cette forme:<nom> <prénom>
voici mon programme
#! /bin/ksh
while read line; do echo -e "$line\n";done < list ;
ca affiche a l'ecran; nom prenom .
je ne sais pas comment mettre les crochai indiquer dans la question
2) supprimer la ligne avec les commentaires
jai fait :
sed '/#/d' list
ca ne marche pas
3) j aimerais aussi créer un pseudo pour chaque nom et prénom en utilisant le 2premiere lettre du nom et les 2 dernière lettre du prénom
quelqu'un pourrais m'aider je vous serais très reconnaissant
je suis débutante en unix(ksh) .j'ai un fichier ayant une liste de nom et prenom comme ci dessous
# commentaire
nom1 prénom1
nom2 prénom2
# commentaire
nom3 prénom3
...
j'aimerais
1) les affichées a l'ecran jai fait
sous cette forme:<nom> <prénom>
voici mon programme
#! /bin/ksh
while read line; do echo -e "$line\n";done < list ;
ca affiche a l'ecran; nom prenom .
je ne sais pas comment mettre les crochai indiquer dans la question
2) supprimer la ligne avec les commentaires
jai fait :
sed '/#/d' list
ca ne marche pas
3) j aimerais aussi créer un pseudo pour chaque nom et prénom en utilisant le 2premiere lettre du nom et les 2 dernière lettre du prénom
quelqu'un pourrais m'aider je vous serais très reconnaissant
A voir également:
- Supprimer,copier dans un fichier
- Supprimer rond bleu whatsapp - Guide
- Fichier bin - Guide
- Impossible de supprimer un fichier - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
1 réponse
Salut,
je ne sais pas comment mettre les crochai indiquer dans la question
Il ne faut pas mettre les chevrons, ils ne sont là que pour signifier que le nom entre les 2 chevrons doit être remplacé par le nom approprié. C'est juste une convention d'écriture.
2) supprimer la ligne avec les commentaires
3) j aimerais aussi créer un pseudo pour chaque nom et prénom en utilisant le 2premiere lettre du nom et les 2 dernière lettre du prénom
En reprenant ton exemple du 1, combiné au 2 (supprimer les commentaires) et en jouant avec le remplacement des paramètres :
;-))
je ne sais pas comment mettre les crochai indiquer dans la question
Il ne faut pas mettre les chevrons, ils ne sont là que pour signifier que le nom entre les 2 chevrons doit être remplacé par le nom approprié. C'est juste une convention d'écriture.
2) supprimer la ligne avec les commentaires
sed '/^#/d' list
3) j aimerais aussi créer un pseudo pour chaque nom et prénom en utilisant le 2premiere lettre du nom et les 2 dernière lettre du prénom
En reprenant ton exemple du 1, combiné au 2 (supprimer les commentaires) et en jouant avec le remplacement des paramètres :
while read -e nom prenom; do echo -e "${nom::2}${prenom: -2}"; done < <(sed '/^#/d' list)
;-))
<nom> <prénom> <pseudo>
donc sans toute fois couper les noms et prenoms je voulais plutot les copiers
2) je voudrais aussi remplacer tous les non accentués par les accentués c'est a dire [éèàùç] -> [eeauc] J'ai fait
sed 's/e/é/g' list
mais ca remplace qu'une seule lettre comment remplacer toute les lettres a la fois?
merci d'avance
Pour le 2, voir avec "sed" et la commande "y" :
Ou avec la commande "tr" (man tr)...
1)apres avoir creer les pseudo je doit passer le nom du fichier en argument jai fait
monfichier= "list"
if[ -f $monfichier] then
echo fichier existant;
else
echo $monfichier non existant
esce correcte ?
2)s'il existe,je voudrais passer le nom du fichier en paramettre que faire?
3)ensuite utiliser les pseudo creer pour chaque nom et prenom et grace a la fonction useradd ajouter chacun utilisateur ou le
login=pseudo
home= /home/nom_xy
uid=1000 pour le premier compte puis on incremente
groupe=users (deja creer)
commentaire = "prenom liste ADMIN LINUX"
shell= /sbin/sh
passwd= toto (par defaut)
- comment recuperer les pseudo de chaque utilisateurs?
voici ce que jai fait
useradd -g users toto /sbin/sh -m -d ..... ensuite quoi?
merci encore
Pour le 1, pas la peine de mettre le nom du fichier dans une variable, le simple fait d'appeler ton script avec le nom du fichier passer en argument (./ton_script nom_du_fichier), tu pourras tester l'existence du paramètre "$1" par la suite...
Pour le 2, voir explication ci-dessus...
Après pour la suite, il serait plus simple de ne pas te compliquer la vie en mettant des chevrons ("<blablabla>") dans la récupération des noms, prénoms et pseudos dans ton fichier. Plus tu feras simple (nom:prenom:pseudo par exemple), plus il te sera facile de récupérer les valeurs par la suite pour construire ton script et créer tes utilisateurs.
Il suffit de redéfinir la variable "$IFS" (séparateur en entrée) pour récupérer chaque variable.
Mais normalement, avec la syntaxe que je t'ai donnée au #3, tu devrais pouvoir définir tes variables (nom, prénom, pseudo, home, etc.) et créer tes utilisateurs à partir de là...
Lis bien le man 'adduser' (ou useradd), toutes les fonctionnalités existe pour créer tes utilisateurs, sans même avoir besoin d'un compteur pour le numéro des groupes, c'est fait automatiquement en natif...