Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2008, 10h06   #1
Invité de passage
 
Inscription : mai 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 5
Points : 2
Points : 2
Par défaut problème script et commande awk

Bonjour !
J'ai un petit problème avec un script que j'ai fait qui permet la création d'utilisateur à partir de données présentes dans un fichier texte.
Je m'explique, voilà la partie de mon script qui récupère les différentes données du fichier :

Code :
1
2
3
4
5
6
7
8
	u=$(cat -b $1 | grep $cpt | awk '{ print $4 }');
	echo "utilisateur " $u
	nom=$(cat -b $1 | grep $cpt | awk '{ print $2 }');
	echo "nom " $nom
	prenom=$(cat -b $1 | grep $cpt | awk '{ print $3 }');
	echo "prenom " $prenom
	mot=$(cat -b $1 | grep $cpt | mawk '{ print $5 }');
	echo "mdp " $mot
$1 est le nom du fichier passé en paramètre.
$cpt est un compteur qui permet de se déplacer ligne par ligne dans le fichier.

Le fichier texte est de cette forme :

Code :
1
2
3
4
nom1 prenom1 login1 mdp1
nom2 prenom2 login2 mdp2
nom3 prenom3 login3 mdp3
...
Le mot de passe est un nombre à 7 caractères, et c'est ça justement qui ne va pas.
Quand j'exécute mon script je me rend compte que les variable ne contiennent pas du tout ce que je voudrais.
ça donne un truc du genre :

Code :
1
2
3
4
5
 
utilisateur : login1 login2 login3
nom : nom1 nom2 nom3
prenom : prenom1 prenom2 prenom3
mdp : mdp1 mdp2 mdp3
En mettant des chaines de caractères comme mot de passe (et pas des chiffres) ça fonctionne très bien, pour chaque ligne (à chaque exécution de ma bouche while), on récupère bien les renseignement de l'utilisateur de la ligne parcourue.
ça fonctionne aussi avec certains nombres (1111111 ou 2222222 par exemple).

Quelqu'un aurait une idée pour résoudre mon problème ?
Je suis assez novice en script shell, je n'utilise peut être pas les bonnes commandes
Merci.
kiell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 12h31   #2
Invité de passage
 
Inscription : mai 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 5
Points : 2
Points : 2
Problème résolu
Pour ceux que ça intéresse, j'ai changé une partie de ma commande, en remplaçant par :

Code :
awk -v cpt=$cpt 'NR == cpt { print "utilisateur : " $4 "\nnom : " $2 "\nprenom : " $3 "mdp : " $5 }'
kiell est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h29.


 
 
 
 
Partenaires

Hébergement Web