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 04/10/2006, 11h21   #1
Invité de passage
 
Inscription : mars 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 9
Points : 3
Points : 3
Par défaut Utilisation de la commande sed

Bonjour,

je veux renommé un fichier en utilisant la commande sed:

le nom de mon fichier a cette forme :
Code :
1
2
 
154TEAZ0.3NVARETS.L2159221
je veux avoir comme résultat :
FULL.3NVARETS.FULL
j'ai réussi à remplacer la derniére partie mais pas la premiére, en utilisant la commande sed:
Code :
1
2
3
 
sed 's/\.[^\.]*$/.\FULL/'
Résultat : 154TEAZ0.3NVARETS.FULL
Merci d'avance
nizniz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 11h43   #2
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 14
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : octobre 2006
Messages : 14
Points : 10
Points : 10
Bonjour,
je ne veux pas répondre à coté du sujet mais vous pouvez utiliser awk avantageusement ici (en termes de facilité) :
Code :
echo "154TEAZ0.3NVARETS.L2159221" | /usr/bin/awk -F\. '{print "FULL." $2 ".FULL"}'
Voulez-vous absolument utiliser sed dans ce cas ou seul le résultat compte ? Sinon, je pourrai chercher dans sed comment faire le cas échéant.
mikool19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 21h03   #3
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Code :
sed -r 's/(^[^.]*)|([^.]*$)/FULL/g'
option -r pour l'utilisation d'expression rationnelles étendues
(^[^.]*) du début jusqu'au premier point
| alternative (le "ou" regex)
([^.]*$) tout caractère sauf le point. Se terminant par la fin de chaîne.

Sans l'option -r, ça donnerait ceci:

Code :
sed  's/\(^[^.]*\)\|\([^.]*$\)/FULL/g'
Un peu moins lisible non?
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat 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 22h41.


 
 
 
 
Partenaires

Hébergement Web