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 :

Regex remplacer la 1ere occurence


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 16
    Par défaut Regex remplacer la 1ere occurence
    Bonjour,

    je voudrai remplacer toute occurrence majuscule par minuscule en fonction d'un regex. Malheureusement pour moi, quand il trouve le regex dans une ligne, il change du regex jusqu'à la fin de la ligne.
    Ligne: <texte id="cellule_10" taille="50" table="pap_MH" champ="DénOMINATI" label="Dénomination" unite="" ancrableable="oui" />
    Commande shell :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i 's/champ=\".*\".*/\L\0/' mon_fichier_qui_contient_le_texte.txt
    Je voudrai juste mettre tout ce qui est dans champ="" en minuscule sur chaque ligne de mon fichier.

    Merci bien.
    Albin

  2. #2
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 16
    Par défaut
    Même cette ligne de commande ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i 's/champ=\".*\"/\L\0/'
    mon_fichier_qui_contient_le_texte.txt

    Merci bien,
    Albin

  3. #3
    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
    sed 's/\(champ="\)\([^"]*\)/\1\L\2/'

  4. #4
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 16
    Par défaut
    Merci bien ! ça marche. Et j'ai un autre souci: remplacer maintenant les caractères accentués comme "é" par "e", "è" par "e", "à" par "a" toujours dans ce même contexte. Je ne trouve pas comment faire mon regex.

    Toujours cette même ligne: <texte id="cellule_10" taille="50" table="pap_MH" champ="dénominati" label="Dénomination" unite="" ancrableable="oui" />

  5. #5
    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
    Il n'y a pas de regex pour la substitution de caractères accentués, c'est du littéral à la façon de la commande tr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 'y/àçéèëêïîöôùüûÀÇÉÈËÊÏÎÖÔÙÜÛ/aceeeeiioouuuACEEEEIIOOUUU/'
    C'est la même chose avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tr 'àçéèëêïîöôùüûÀÇÉÈËÊÏÎÖÔÙÜÛ' 'aceeeeiioouuuACEEEEIIOOUUU'

  6. #6
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 16
    Par défaut
    Justement, je sais ça...mais c'est toujours le fameux champ="" que je veux les remplacer. Je ne sais pas comment m'y prendre.

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

Discussions similaires

  1. REmplacer la deuxième occurence dans un fichier
    Par EDrequest dans le forum Langage
    Réponses: 3
    Dernier message: 01/08/2006, 21h34
  2. [Regex] Remplacement d'une chaîne avec $
    Par TSnarfK dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 27/01/2006, 10h44
  3. [Regex]Remplacement d'un nombre indéfinie de motif
    Par gege2061 dans le forum Langage
    Réponses: 5
    Dernier message: 14/01/2006, 17h27
  4. Borland C++ 5.5 remplacer toutes les occurences
    Par cdelamarre dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 30/11/2005, 12h23
  5. Réponses: 5
    Dernier message: 03/02/2005, 13h59

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