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 14/11/2007, 09h40   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 51
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 51
Points : 12
Points : 12
Par défaut c shell + commande sed

comment utiliser la commande sed pour remplcer une chaine de caractere par une autre dans un ficheir

je veux remplacer
Citation:
-}****
par
Citation:
-}
merci de m'aider
gaucher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 10h00   #2
Membre éprouvé
 
Avatar de argoet
 
Inscription : mai 2002
Messages : 535
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 535
Points : 461
Points : 461
Vous pouvez vous inspirer de ceci
Code :
cat mon_fichier |  sed "s/\*//g"
__________________
Signé : Capitaine Jean-Luc Picard
argoet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 10h07   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 51
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 51
Points : 12
Points : 12
merci pour la réponse
Citation:
Envoyé par argoet Voir le message
Vous pouvez vous inspirer de ceci
Code :
cat mon_fichier |  sed "s/\*//g"
peux-tu expliquer au débutant que je suis
Citation:
s/\*//g
le slash et l'ante -slash

merci pour ton aide
gaucher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 10h15   #4
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 51
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 51
Points : 12
Points : 12
voila mon script
Code :
1
2
3
4
5
6
7
8
cd "c:/Temp_flex"
for x in `ls`
do
cat $x >> SKB-FLEX.D`date +%d%m%y`_0000`date +%OH%OM`
mv $x "c:/archive_flex_out"
done
 
mv SKB-FLEX.D`date +%d%m%y`_0000`date +%OH%OM` "c:/test/"
jusqua' la c bon, mais dans mon fichier d'arrivée SGM-FLEx..., je dois enlever des étoiles (jai que je veux remplacer pas juste )
gaucher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 10h19   #5
Membre éprouvé
 
Avatar de argoet
 
Inscription : mai 2002
Messages : 535
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 535
Points : 461
Points : 461
Ceci veut dire : subsitue "*" (\*) par rien //

* fait partie des "Meta caractères" et pour ne pas etre interpreté comme tel , il faut le preceder d'un "anti slash"

Vous pouvez voir aussi la description de sed ici
__________________
Signé : Capitaine Jean-Luc Picard
argoet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 10h29   #6
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 51
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 51
Points : 12
Points : 12
ça ne marche pas, voila l'erreur qu'il me sort

Code :
1
2
sed: ?, *, +, or { } not preceded by valid regular expression
sed: ?, *, +, or { } not preceded by valid regular expression
voila la partie du script

Code :
cat $x | sed "s/\*****//g"
gaucher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 10h33   #7
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 51
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 51
Points : 12
Points : 12
g compris, il faut mettre juste une seule étoile; ça marche mais juste sur la sortie standard (cad sur l'écran), comment faire de sorte que la modification soit définitive dans le fichier lui même

merci encore
gaucher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 10h53   #8
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 903
Points : 1 903
Citation:
Envoyé par man sed
-i[SUFFIX], --in-place[=SUFFIX]

edit files in place (makes backup if extension supplied)
A noter que toutes les étoiles du fichier vont disparaître.

On peut également utiliser tr pour avoir le même résultat avec un syntaxe encore plus simple
Code :
echo "n'importe*quoi*" | tr -d '*'
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 11h19   #9
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 51
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 51
Points : 12
Points : 12
c bon ça marche,

voila mon script

Code :
1
2
3
4
5
6
7
cd "c:/Temp"
for x in `ls`
do
cat $x |sed "s/\*//g" >>SKB.D`date +%d%m%y`_0000`date +%OH%OM`
mv $x "c:/archive"
done
mv SKB.D`date +%d%m%y`_0000`date +%OH%OM` "e:/app/data/bo/
"

comme vous remarque le nom de mon fichier SKB.D....
est composée d'une date et d'une heure, j'aurai aimé le stocké dans une variable de peur que l'heure change au cour de l'exécution du script.

comment puis-je modifier mon script

merci encore pour votre aide précieuse
gaucher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 12h21   #10
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 903
Points : 1 903
Code :
1
2
bla=$(date)
echo $bla
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 13h19   #11
Membre éprouvé
 
Avatar de argoet
 
Inscription : mai 2002
Messages : 535
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 535
Points : 461
Points : 461
en csh
Code :
1
2
3
4
5
6
7
8
9
10
 
set V_FIC="SKB.D`date +%d%m%y`_0000`date +%OH%OM`"
 
cd "c:/Temp"
for x in `ls`
do
   cat $x |sed "s/\*//g" >> $V_FIC
   mv $x "c:/archive"
done
mv $V_FIC "e:/app/data/bo/"
__________________
Signé : Capitaine Jean-Luc Picard
argoet 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 07h12.


 
 
 
 
Partenaires

Hébergement Web