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 22/01/2007, 20h25   #1
Invité de passage
 
Inscription : août 2006
Messages : 23
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : août 2006
Messages : 23
Points : 3
Points : 3
Par défaut probleme remplacement chaine de caractere avec SED

bonjour a tous.
en fesant:
Code :
1
2
3
4
fichier test:
#!/bin/sh
 
sed s/LEPSEUDO/$1/g gnagna
Code :
1
2
3
4
5
6
 
fichier gnagna:
INSERT INTO `dc_user` ( `user_id` , `user_level` , `user_pwd` , `user_nom` , `u$
VALUES (
'LEPSEUDO', '9', MD5( 'LEMPD' ) , 'LENOM', 'LEPRENOM', '', '', 'wiki', '10', '1$
);
et en lancant via ./test LEMOTDEPASSCHANGER
sa me retourne
Code :
1
2
3
4
5
root@jenyfer:/tmp/test# ./test LEMOTDEPASSCHANGER
INSERT INTO `dc_user` ( `user_id` , `user_level` , `user_pwd` , `user_nom` , `user_prenom` , `user_pseudo` , `user_email` , `user_post_format` , `user_edit_size` , `user_pref_cat` , `user_lang` , `user_delta` , `user_post_pub` )
VALUES (
'LEMOTDEPASSCHANGER', '9', MD5( 'LEMPD' ) , 'LENOM', 'LEPRENOM', '', '', 'wiki', '10', '1', 'fr', '0', '1'
);
et en utilisant
Code :
 vi -c "%s:LEPSEUDO:$1:|:wq" fichier
sa marche, hors je prefererais via sed qui n'ouvre pas de prog contrairement a vi qui s'ouvre puis se ferme

si quelqun a une petite idée, sa m'aiderais pour finir mon script
Merchi d'avance.
rhaamo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 23h14   #2
Membre chevronné

 
Avatar de D[r]eadLock
 
Inscription : mai 2002
Messages : 504
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mai 2002
Messages : 504
Points : 622
Points : 622
Désolé mais je n'ai rien compris !

Rq: fesant<-faisant,
sa<-ça, (x2)
hors<-or,
m'aiderais<-m'aiderait,

Je crois que j'ai compris, essaye avec sed -i, mais j'ai lutté.
Pour les autres (si ce n'est pas sed -i), il souhaite que le fichier (gnagna) soit modifié directement, et non que la modification soit affichée sur STDOUT, enfin je crois, parce que je ne trouve pas le sens de :
Citation:
sed qui n'ouvre pas de prog contrairement
__________________
1)Avant de poster, merci de lire les règles. 2)Utiliser [code] [/code] pour quoter le code ! 3)Conseils pour le forum C [a lire en entier!]
D[r]eadLock est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 12h05   #3
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
Citation:
Envoyé par rhaamo
bonjour a tous.
en fesant:
Code :
1
2
3
4
fichier test:
#!/bin/sh
 
sed s/LEPSEUDO/$1/g gnagna
Code :
1
2
3
4
5
6
 
fichier gnagna:
INSERT INTO `dc_user` ( `user_id` , `user_level` , `user_pwd` , `user_nom` , `u$
VALUES (
'LEPSEUDO', '9', MD5( 'LEMPD' ) , 'LENOM', 'LEPRENOM', '', '', 'wiki', '10', '1$
);
et en lancant via ./test LEMOTDEPASSCHANGER
sa me retourne
Code :
1
2
3
4
5
root@jenyfer:/tmp/test# ./test LEMOTDEPASSCHANGER
INSERT INTO `dc_user` ( `user_id` , `user_level` , `user_pwd` , `user_nom` , `user_prenom` , `user_pseudo` , `user_email` , `user_post_format` , `user_edit_size` , `user_pref_cat` , `user_lang` , `user_delta` , `user_post_pub` )
VALUES (
'LEMOTDEPASSCHANGER', '9', MD5( 'LEMPD' ) , 'LENOM', 'LEPRENOM', '', '', 'wiki', '10', '1', 'fr', '0', '1'
);
et en utilisant
Code :
 vi -c "%s:LEPSEUDO:$1:|:wq" fichier
sa marche, hors je prefererais via sed qui n'ouvre pas de prog contrairement a vi qui s'ouvre puis se ferme

si quelqun a une petite idée, sa m'aiderais pour finir mon script
Merchi d'avance.

la plupart du temps sed appelles vi donc ....

la solution consistes à re-diriger l'affichage durant l'opération ce qui rend la manipulation transparente sur tous les systèmes y compris ceux qui "ouvrent" vi.
penses aussi au cas des systèmes où vi renvoie sur STDERR "Not openning vi in a terminal" et messages équivalents.
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 14h40   #4
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
sed -i fichier -e s/CHAINE/$1/
becket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 15h12   #5
Invité de passage
 
Inscription : août 2006
Messages : 23
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : août 2006
Messages : 23
Points : 3
Points : 3
salut.
merci des reponses.
Citation:
enfin je crois, parce que je ne trouve pas le sens de :
Citation:
Citation:
sed qui n'ouvre pas de prog contrairement
ben quand je fait avec vi il s'ouvre puis se ferme, et avec sed rien ne s'ouvre/ferme immediatement ...

je test des que je peut sed -i fichier -e s/CHAINE/$1/
et voir si c bon :/
rhaamo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h24.


 
 
 
 
Partenaires

Hébergement Web