WiT

Ce qui n'est pas prescris est prohibé
 
AccueilAccueil  FAQFAQ  S'enregistrerS'enregistrer  Connexion  

Partagez | 
 

 aide unix

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Fulgar
Mineur Démoniaque
Mineur Démoniaque


Masculin Posts : 2882
Age : 29

MessageSujet: aide unix   Mar 29 Mai - 18:38

Il se trouve que j'ai un projet en unix et que j'arrive pas a trouver comment faire pour une des parties.
On a un fichier passé en parametre dans notre programme contenant des nom et prenom:

prenom1:nom1
prenom2:nom2
etc....

Et on doit créer un nouveau fichier (le 2eme parametre du programme) qui créera un nouveau fichier avec dedans le pseudo, le prenom et le nom sous la forme:

pseudo1:prenom1:nom1
pseudo2:prenom2:nom2
etc....

sachant que le pseudo est la 1ere lettre du prénom suivant du nom tronqué à 7 caractères.


J'avais pensé utiliser la commande "sed" mais c'est pas super bien expliqué sur internet (ca manque d'exemple concret).

_________________
Tout vient à point à qui sait attendre !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
HR
The Grand GrandMaster
The Grand GrandMaster


Masculin Posts : 6279
Age : 37

MessageSujet: Re: aide unix   Mar 29 Mai - 22:31

Je comprend ce que tu veux faire, mais je ne comprend pas le problème ;

tu dois faire ce programme ? en quel langage ? quel compilateur ?

_________________
GrandCornu Misanthrope coërcitif

Fondateur WiT.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://witistyrannic.realbb.net
blutcher
L'avenir m'appartient !
L'avenir m'appartient !


Masculin Posts : 3020
Age : 31

MessageSujet: Re: aide unix   Mar 29 Mai - 22:49

script unix je suppose
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fulgar
Mineur Démoniaque
Mineur Démoniaque


Masculin Posts : 2882
Age : 29

MessageSujet: Re: aide unix   Mar 29 Mai - 23:41

en bash

_________________
Tout vient à point à qui sait attendre !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
HR
The Grand GrandMaster
The Grand GrandMaster


Masculin Posts : 6279
Age : 37

MessageSujet: Re: aide unix   Mer 30 Mai - 12:38

=(

je pense pas être en mesure de t'aider ; ça remonte à trop longtemps, et j'en ai fait trop peu...

_________________
GrandCornu Misanthrope coërcitif

Fondateur WiT.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://witistyrannic.realbb.net
Florinou
Maître Boulet
Maître Boulet


Masculin Posts : 3910
Age : 30
Localisation : Dtc

MessageSujet: Re: aide unix   Mer 30 Mai - 15:54

1) découper chacun des noms:prénoms avec la commance ifs suivant les retours à la ligne (/n)
je ne sais plus très bien comment on utilise Ifs mais ca découpe une chaine de caractères et la met dans des attributs. faut en gros faire un ifs du fichier que tu à lu avec la commande cat
2) Tu créer
3)Tu fait une boucle(for) pou tout les arguments récupérés par la commande IFS
4) tu refais un ifs avac le caractère : qui séparera le nom et le prénom
(au pire tu peux faire qu'un seul IFS et utiliser la commande TR pour substituer les : à un retours à la ligne /n puis tu fait l'ifs de cette manière t'aura le nom puis le prénom puis le nom puis le prénom... dans chacun des attricuts.
5)tu récupère ce dont tu as besoin dans les chaines de char... mais je sais pas quel commandes utiliser...

_________________


http://www.erepublik.com/fr/referrer/floripoux
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
blutcher
L'avenir m'appartient !
L'avenir m'appartient !


Masculin Posts : 3020
Age : 31

MessageSujet: Re: aide unix   Mer 30 Mai - 16:06

pareil ca fait un moment que je ne fais plus d'unix mais a mon avis il ne te demande pas d'utiliser l'instruction sed.

A mon avis avec un vieux cut tu peux a la fois découper la chaine avec le séparateur : et tu peux ensuite découper les mots.

Tu nous donneras la solution quand tu auras trouvé Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fulgar
Mineur Démoniaque
Mineur Démoniaque


Masculin Posts : 2882
Age : 29

MessageSujet: Re: aide unix   Mer 30 Mai - 20:18

le problème du cut c'est que ca découpe en colonnes entières. Ce qui fait qu'on récupère toutes les données de chaque lignes pour le cut.
J'avais pensé à ca mais il reste encore à tester et à modifié si besoin est (que je pense d'ailleur puisque c'est de l'écrire comme ca direct sans test):


#!/bin/bash
touch $2
typeset -i fin=`grep -c $1`
for i in `seq 1 $fin`
do
info=$(head -$i $1 | tail -1)
le_prenom1=$(echo $info | cut -d: -f1)
le_nom1=$(echo $info | cut -d: -f2)
le_prenom2=$(echo $le_prenom1 | cut -c1)
le_nom2=$(echo $le_nom1 | cut -c1-7)
le_pseudo=$le_prenom2$le_nom2
echo $le_pseudo":"$le_prenom1":"$le_nom1 >> $2
done

_________________
Tout vient à point à qui sait attendre !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
LaTeX
Elève
Elève


Posts : 105
Age : 30

MessageSujet: Re: aide unix   Jeu 31 Mai - 22:02

hum je comprend rien du tout Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fulgar
Mineur Démoniaque
Mineur Démoniaque


Masculin Posts : 2882
Age : 29

MessageSujet: Re: aide unix   Jeu 31 Mai - 23:51

Ah bah forcement si tu n'as jamais vu... ^^

_________________
Tout vient à point à qui sait attendre !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
LaTeX
Elève
Elève


Posts : 105
Age : 30

MessageSujet: Re: aide unix   Ven 1 Juin - 9:57

en fait ce programme est utile pour faire quoi?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
HR
The Grand GrandMaster
The Grand GrandMaster


Masculin Posts : 6279
Age : 37

MessageSujet: Re: aide unix   Ven 1 Juin - 11:15

Essentiellement pour apprendre à manipuler le bash.

_________________
GrandCornu Misanthrope coërcitif

Fondateur WiT.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://witistyrannic.realbb.net
LaTeX
Elève
Elève


Posts : 105
Age : 30

MessageSujet: Re: aide unix   Ven 1 Juin - 12:05

oki merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fulgar
Mineur Démoniaque
Mineur Démoniaque


Masculin Posts : 2882
Age : 29

MessageSujet: Re: aide unix   Mar 5 Juin - 19:50

Et bien après test, tout marche bien, juste une petite réctification tout de même ^^

#!/bin/bash
touch $2
typeset -i fin=`grep -c "^.*" $1`
for i in `seq 1 $fin`
do
info=$(head -$i $1 | tail -1)
le_prenom1=$(echo $info | cut -d: -f1)
le_nom1=$(echo $info | cut -d: -f2)
le_prenom2=$(echo $le_prenom1 | cut -c1)
le_nom2=$(echo $le_nom1 | cut -c1-7)
le_pseudo=$le_prenom2$le_nom2
echo $le_pseudo":"$le_prenom1":"$le_nom1 >> $2
done

_________________
Tout vient à point à qui sait attendre !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
HR
The Grand GrandMaster
The Grand GrandMaster


Masculin Posts : 6279
Age : 37

MessageSujet: Re: aide unix   Mar 5 Juin - 20:15

Nice tout ça ;

tu vas pouvoir nous faire un exposé sur le bash.

_________________
GrandCornu Misanthrope coërcitif

Fondateur WiT.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://witistyrannic.realbb.net
Fulgar
Mineur Démoniaque
Mineur Démoniaque


Masculin Posts : 2882
Age : 29

MessageSujet: Re: aide unix   Mar 5 Juin - 20:59

Euhhhhhhhhhhh, et bien c'est vague tout ca ^^ il suffit de connaitre les bonnes commandes et après c'est principalement de l'algo et de la logique. Smile

_________________
Tout vient à point à qui sait attendre !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
HR
The Grand GrandMaster
The Grand GrandMaster


Masculin Posts : 6279
Age : 37

MessageSujet: Re: aide unix   Mar 5 Juin - 21:46

je comprends pas !

tu peux détailler ?

Big Smile

_________________
GrandCornu Misanthrope coërcitif

Fondateur WiT.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://witistyrannic.realbb.net
Fulgar
Mineur Démoniaque
Mineur Démoniaque


Masculin Posts : 2882
Age : 29

MessageSujet: Re: aide unix   Mar 5 Juin - 22:29

Avous tu le fais exprès Razz

Bin comme j'ai dis c'est de l'algorithme et de la connaissance du systeme unix.

Sinon il existe pas mal de commandes comme

grep
du
wc
find
cut
tr
sort

et d'autres ^^

_________________
Tout vient à point à qui sait attendre !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Emperor X
Haut conseiller
Haut conseiller


Masculin Posts : 4689
Age : 29
Localisation : Belgique, une fois!

MessageSujet: Re: aide unix   Mar 5 Juin - 22:33

Bah le bash c'est facile, suffit de pas raider plus de 3 fois sur 24 heures un joueur... Ah oui et aussi il faut savoir qu'en temps de guerre y'a pas de bash, c'est tout non?



(Cherchez pas je suis déjà sorti...)

_________________

Emperor X, haut conseiller autoproclamé de la WiT
Décoré de la médaille de la guerre et
Porteur de la Couronne du Tyran Intérimaire
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
HR
The Grand GrandMaster
The Grand GrandMaster


Masculin Posts : 6279
Age : 37

MessageSujet: Re: aide unix   Mar 5 Juin - 22:48

Woua, ça a l'air super compliqué ton truc Fulgar

tain faudrait vraiment que tu prenne la peine d'expliquer avec des exemples concrets de programmes et autre ;
ça serait vraiment sympa.

M'enfin, c'est sûr, c'est rare les mecs sympa...
Mais enfin, toi t'es sympa.


EmperorX: oublie pas la porte. =)

_________________
GrandCornu Misanthrope coërcitif

Fondateur WiT.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://witistyrannic.realbb.net
Fulgar
Mineur Démoniaque
Mineur Démoniaque


Masculin Posts : 2882
Age : 29

MessageSujet: Re: aide unix   Mar 5 Juin - 23:34

Et bien il y a déjà un exemple de mis: a partir d'un fichier source (1er paramètre du script correspondant à $1 ) sous les forme prenom:nom , on créer un nouveau fichier destination (2eme paramètre du script correspondant à $2 ) avec pour format pseudo:prenom:nom.



#!/bin/bash
touch $2 -----------> creer le fichier destination

typeset -i fin=`grep -c "^.*" $1` -----> compte le nombre de ligne du fichier source est le met dans une variable numérique fin

for i in `seq 1 $fin` ---------> boucle allant de 1 au contenu du fin ( $fin correspond au contenu)

do

info=$(head -$i $1 | tail -1) -----------> un peu plus compliqué:
head : prend les n premieres lignes du fichier source $1 correspondant au paramètre -$i (comme c'est une boucle, cela vaut 1 au 1er passage, puis 2, etc...)
puis le "|" correspond à un tube, c'est à dire que le résultat de l'expression de gauche va être traité avec l'expression de droite.
tail -1: prend la dernière ligne de ce qu'on lui passe.
Si on suit ce raisonnement, la variable info va recevoir la 1ere ligne, puis la 2eme, etc... correspondant à la valeur de i

le_prenom1=$(echo $info | cut -d: -f1) -------> même principe avec le tube mais cette fois:
echo: affiche le contenu de $info
puis tube
puis cut: découpe la chaine suivant le séparateur ":" (-d : ) et prend le 1er champs (-f1)

le_nom1=$(echo $info | cut -d: -f2) ----> même chose que précédent

le_prenom2=$(echo $le_prenom1 | cut -c1) ---> même chose que précédemment mais coupe uniquement le 1er caractere

le_nom2=$(echo $le_nom1 | cut -c1-7) -----> même chose que précédemment mais coupe les 7er caractères

le_pseudo=$le_prenom2$le_nom2 ------> concaténation des chaine le_prenom2 et le_nom2 dans une variable le_pseudo

echo $le_pseudo":"$le_prenom1":"$le_nom1 >> $2 ------> affiche normalement le_pseudo:le_prenom:le_nom à l'écran mais grace à ">>", redirection de la sortie standart (écran) vers le fichier destination $2


done ---> fin de la boucle





Autre chose ?

_________________
Tout vient à point à qui sait attendre !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Amonbofis
Maitre Glandeur
Maitre Glandeur


Masculin Posts : 1037
Age : 31

MessageSujet: Re: aide unix   Mer 6 Juin - 19:29

'tin mais il comprend rien celui la hein ! pig

_________________
Retraité Ogame

et puisque c'est la mode...

Ergrim a écrit:
comme quoi seul Amonbof est parfait
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fulgar
Mineur Démoniaque
Mineur Démoniaque


Masculin Posts : 2882
Age : 29

MessageSujet: Re: aide unix   Mer 6 Juin - 19:59

Tu sais avec l'âge, c'est normal Big Smile

_________________
Tout vient à point à qui sait attendre !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: aide unix   Aujourd'hui à 9:00

Revenir en haut Aller en bas
 
aide unix
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Topic d'aide et de question GS.
» [Blog] j'ai besoin d'aide pour Brickshelf
» Aide pour les noobs
» [Software] Besoin d'Aide pour Bionicle Heroes
» [Aide] Le BBCode

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
WiT :: Partie Publique :: Salon-
Sauter vers: