Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
489 connectés 

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Commande shell

n°648855
utopiaste
Posté le 12-03-2005 à 19:31:49  profilanswer
 

Bonjour, j'aimerais avoir 2 renseignement.
 
Le 1er et le plus "urgent" est de savoir comment fonctionne la boucle while pour faire une boucle de lecture.
Je m'esplique, je cherche à faire une boucle qui me lit un fichier csv ligne par ligne, de sorte que je puisse récupérer dans une variable une ligne pour la découpé et récupérer mes colonne grace à | gawk -F";" '{ print $1 }'
 
pour pouvoir une fois ma 1ere colonnes récupéré pouvoir ensuite y faire subire plusieur traitement et faire plusieurs actions avec cette colone et passer ensuite à la seconde ligne pour refaire pareil jusqu'à qu'il n'y ai plus de ligne.
 
 
 
La 2eme chose, je souhaiterais savoir comment créer uni chaine aléatoire en shell de X caractère alphanumérique ?
 
 
 
 
 
PS: si quelqu'un à un site qui répertorie les commande shell du linux avec espliquer toutes les possibilité avec les commande (mieu fait que le man bash donc) ça m'interesse !!!


Message édité par utopiaste le 12-03-2005 à 19:59:48
mood
Publicité
Posté le 12-03-2005 à 19:31:49  profilanswer
 

n°648861
ceric35
Posté le 12-03-2005 à 19:35:33  profilanswer
 

awk pour ca ?
 

cat fichier|cut -d';' -f1|while read ligne ; do
 echo $ligne
done


 
ou si tu tient a awk
 

cat fichier|awk -F";" '{ print $1 }'|while read ligne ; do
 echo $ligne
done


 
2) tu peut utiliser la variable $RANDOM
qui contient une valeur aleatoire


Message édité par ceric35 le 12-03-2005 à 19:53:07
n°648869
utopiaste
Posté le 12-03-2005 à 19:41:01  profilanswer
 

Ok merci je teste ça dès lundi.. je tien à awk pour etre capable de le faire avec une autre colone lol
 
 
Merci

n°648873
utopiaste
Posté le 12-03-2005 à 19:45:36  profilanswer
 

Pour créer une chaine de caractère aléatoire je fait comment au faite?

n°648874
ceric35
Posté le 12-03-2005 à 19:54:40  profilanswer
 

La 2eme chose, je souhaiterais savoir comment créer un nombre aléatoire en shell de X caractère alphanumérique ?
 
C'est un nombre ou une chaine ?

n°648876
utopiaste
Posté le 12-03-2005 à 19:59:10  profilanswer
 

oups désolé au début j'était parti sur nombre mais c'est mieu chaine... je vais coriger ça... c'est chaine que je cherche.
 
Désoler... Merci

n°648898
couak
Posté le 12-03-2005 à 20:44:41  profilanswer
 

perl powah

Code :
  1. perl -e 'sub alea { my @t=('a'..'z','A'..'Z','0'..'9'); return join "",map $t[rand @t],1..(shift); } print alea(8);'


Tu remplaces 8 par le nbre que tu veux

n°648907
utopiaste
Posté le 12-03-2005 à 21:09:28  profilanswer
 

et c'est utilisable dans un script compplettement en sh?  
 
si je met  
 
rand_var=perl -e 'sub alea { my @t=('a'..'z','A'..'Z','0'..'9'); return join "",map $t[rand @t],1..(shift); } print alea(8);'
 
ça va marcher?
 
(désoler je peu pas tester... j'ai pas de linux sous la main je l'aurais que lundi....)

n°648909
couak
Posté le 12-03-2005 à 21:26:24  profilanswer
 

Code :
  1. rand_var=`perl -e 'sub alea { my @t=('a'..'z','A'..'Z','0'..'9'); return join "",map $t[rand @t],1..(shift); } print alea(8);'`


mais uniquement si tu as installé Perl

n°648925
ceric35
Posté le 12-03-2005 à 22:46:31  profilanswer
 

faut que je me mette au perl !
 
mais avec tes commandes de fou , tu donne pas envie  :D

mood
Publicité
Posté le 12-03-2005 à 22:46:31  profilanswer
 

n°648930
Zaib3k
Posté le 12-03-2005 à 23:01:55  profilanswer
 

shellunix.com est assez bien pour commencer.
 
sinon pour le while. j'utilise  
while read toto
do
  blabla
done < mon_fichier.csv
 
après tu peux aussi utiliser set pour te passer de awk et travailler direct avec les variables positionnelle $1,$2, ...
 
wala :o


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°648944
burgergold
5$? va chez l'diable!
Posté le 12-03-2005 à 23:41:56  profilanswer
 

pk tu fais pas le tout en perl :D
 
perl c'est bien, mangez enh!

n°648964
utopiaste
Posté le 13-03-2005 à 10:09:41  profilanswer
 

voilà, Zaib3k, c'est cette syntaxe que j'avais vu sur le net mais que je n'ai pas tellement compri comment on s'en sert....
 
dans ton example
 
while read toto  
do  
  blabla  
done < mon_fichier.csv
 
si j'ai bien compri ma ligne va se retrouver dans la variable toto c'est bien ça? et à partire de là je peut récupérer mes colone. en parlan de ça, comment s'utilise la commande set ?
 
 
(quelqu'un aurais un listing des commnde shell avec toutes les utilisation possible des commande parsque le ban bash est pas très complet...)
 
 
 
Pour ce qui est du perl j'aimerais bien mais bon je connai rien au perl alors que j'ai un peut des base en shell et comme je suis lié à des contraintes de temps j'ai pas le choix...
 
 
 
Merci

n°648975
Zaib3k
Posté le 13-03-2005 à 10:58:56  profilanswer
 

a ta place je ferais:
 

while read ligne;do
   IFS=";"
   set $ligne
   echo "champs1=$1 champs2=$2 ..."
done < mon_fichier.csv


 
pas besoin de awk :D


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°648976
Zaib3k
Posté le 13-03-2005 à 11:01:12  profilanswer
 

http://shellunix.com/
http://www.tldp.org/LDP/abs/html/ (existe en francais qq part sur le net)


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°649334
utopiaste
Posté le 13-03-2005 à 20:20:07  profilanswer
 

Ok Merci bien du coup de main, je vous diré lundi soir si j'ai réussi à faire ske je veu !!
 
 
Merci !!!

n°649351
trictrac
Posté le 13-03-2005 à 21:12:06  profilanswer
 

pour ton fichier CSV, tu fais un perl uniligne du genre  
perl -ne 'ici le traitement de chaque ligne représentée par la variable $_;'
Un super lien, qui fait suite a une série d'articles dans linux mag
http://sylvain.lhullier.org/publications/perl.html


Aller à :
Ajouter une réponse
 

Sujets relatifs
Commande shell pour se délogguer sous Gnomecommande su dans un script shell
commande pour tester un parametre en prog shell[shell] temporisation avant de lancer une commande
Y'a une commande pour savoir sur quel shell on est ?[Javanns ou snns] ligne de commande shell.
[shell] connection a internet sous la ligne de commandequelle commande pour lancer k desktop a partir de debian shell
lancer un fichier qui execute une commande shellCommande presque basique... mais je la trouve pas [SHELL]
Plus de sujets relatifs à : Commande shell


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR