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 26/04/2006, 10h57   #1
Invité de passage
 
Inscription : juin 2005
Messages : 14
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 14
Points : 2
Points : 2
Par défaut La commande sed

Bonjour,

Voilà mon problème.
J'utilise une commande sed pour rechercher un motif qui est ::
Je l'utilise de la façon suivante
sed 's/\([^::]*\)::\(.*\)/\2/g' nom_fichier
Cela me permet de récuperer ce qui se trouve après les ::
Le problème c'est que dans mes lignes du fichier, si il y a le motif : avant le motif :: la commande sed prend en compte que le premier :
Y-a-t-il un moyen de faire comprendre à la commande que c'est exclusivement le motif :: qu'il doit rechercher ?

Merci
ajsd0208 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 11h44   #2
Rédacteur
 
Avatar de pcaboche
 
Homme Pierre Caboche
Inscription : octobre 2005
Messages : 2 197
Détails du profil
Informations personnelles :
Nom : Homme Pierre Caboche
Âge : 32
Localisation : Singapour

Informations forums :
Inscription : octobre 2005
Messages : 2 197
Points : 4 721
Points : 4 721
Au lieu d'écrire
Code :
s/\([^::]*\)::\(.*\)/\2/g
, essaye avec
Code :
s/::\([^:]*\)\(.*\)/\1/g
Est-ce que le (.*\) est obligatoire ?
pcaboche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 14h34   #3
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
essaye avec perl

Code :
1
2
3
4
5
$ echo 'abc:def::123::456:789\n12::3:4'|
    perl -pe 's/^(^:[^:]|[^:]|[^:]:[^:])*:://' 
123::456:789
3:4
laurentschneider 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 02h42.


 
 
 
 
Partenaires

Hébergement Web