IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

problème d'expression régulière


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Par défaut problème d'expression régulière
    Bonjour,
    je voudrais supprimer toutes les occurrences de caractères spéciaux dans mon fichier blabla, cela marche bien lorsqu'il s'agit de point d'exclamation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while cat blabla | grep -E ".*!.*" 1>/dev/null
    do
    	sed 's/!//' blabla>truc
    	cat truc>blabla
    done
    Hors lorsque je veux supprimer les points par exemple ou bien les parenthèses, cela ne fonctionne pas, la commande pense que je donnes une expression régulière.

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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 : 5 196
    Par défaut
    la boucle ne sert à rien
    puisque sed lira ligne à ligne le fichier source, et alimentera le fichier destination

    que veux tu faire réellement exemple avant/après est nécessaire

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Par défaut
    J'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    kandro@linux:~$ cat blabla
    blabla...
    blabla!!!
    Lorsque je fais uniquement le sed j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    kandro@linux$ sed 's/!//' blabla
    blabla...
    blabla!!
    Mais quand j'execute le script de mon premier post j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    kandro@linux:~$ cat blabla
    blabla...
    blabla

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ cat blabla 
    blabla...
    blabla!!!
     
    $ sed 's/!//g' blabla 
    blabla...
    blabla
     
    $ sed 's/\.//g' blabla 
    blabla
    blabla!!!
     
    $

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Par défaut
    Merci, tu m'enlève une épine du pieds !

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par kandro Voir le message
    Bonjour,
    je voudrais supprimer toutes les occurrences de caractères spéciaux dans mon fichier blabla, cela marche bien lorsqu'il s'agit de point d'exclamation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while cat blabla | grep -E ".*!.*" 1>/dev/null
    do
    	sed 's/!//' blabla>truc
    	cat truc>blabla
    done
    Hors lorsque je veux supprimer les points par exemple ou bien les parenthèses, cela ne fonctionne pas, la commande pense que je donnes une expression régulière.
    Pour supprimer tous les caractères qui t'embêtent, tu peux les mettre entre crochets (et avec le "g"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        sed 's/[!.()]//g' blabla>truc
    HTH
    )jack(
    PS: "Hors" veut dire "dehors"... Or, je crois que tu voulais dire "or"...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. petit problème d'expression régulière
    Par stoyak dans le forum Langage
    Réponses: 5
    Dernier message: 16/05/2006, 11h20
  2. [regexp] petit problème d'expression régulière
    Par LE NEINDRE dans le forum Langage
    Réponses: 14
    Dernier message: 16/12/2005, 10h33
  3. Problème d'expression régulière
    Par SiM07 dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 17h57
  4. Problème d'expression régulière
    Par Pymm dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 11/10/2005, 15h04
  5. Problème d'expression régulière
    Par Neitsa dans le forum Général Python
    Réponses: 3
    Dernier message: 11/08/2005, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo