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 :

Remplacer certains caractères (accentués) par d'autre


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut Remplacer certains caractères (accentués) par d'autre
    Bonsoir,

    Je recherche à remplacer certains caractères accentués par d'autres contenu dans une variable :

    à > a
    é > e
    ç > c
    - > (rien) : jean-françois > jeanfrancois

    J'ai vu des exemples avec "TR"... comment ca fonctionne ?

  2. #2
    Membre Expert

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Par défaut
    Salut

    Ça marche comme ça:
    tr 'àé' 'ae'

    Voir la page de man

  3. #3
    Membre Expert

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Par défaut
    Pour supprimer des caractère, regarde plutôt du côté de sed.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    j'ai regardé le man, mais à chaque fois je ne comprend rien aux explications ! MDR Question d'habitude je pense... Je vais mis faire vous inquiétez pas !

  5. #5
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Avec sed

    y/source/dest/
    Transliterate the characters in the pattern space which appear in source to the corresponding character in dest.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var="jean-françois"
    echo $var | sed -e "y/àç/ac/" -e "s/-//g"
    jeanfrancois

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    A oui impécable ! c'est mieux que TR je trouve ! j'avais réussie à faire la même chose avec TR mais en plus long, et ca déconnait sur la conversion accents > sans accents...

  7. #7
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    et avec sed, pour supprimer plusieurs caractères en même temps c'est quoi l'opérateur à choisir ?

    car pour un caractère c'est : ... -e "s/-//g"...

  8. #8
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    Utilise tr, c'est très bien.

    Si ton Sed ne fait que du y, tr sera plus adapté.
    tr -d supprime les caractères que tu lui donnes.

    Sinon pour supprimer une classe de caractères : s/[-_,]//g

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    +1 pour tr, plus adapté.

    tr accepte également certaines classes de caractères:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo 'a0b1cde2' | tr -d [0-9]
     
    # retourne 'abcde'

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/12/2010, 16h58
  2. Remplacer un mot entier par un autre dans une chaîne de caractères
    Par clemini dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 19/02/2009, 14h39
  3. Réponses: 6
    Dernier message: 28/06/2007, 14h28
  4. Remplacer Saut de ligne par un autre caractère
    Par kurtalis dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 18/05/2007, 17h40
  5. Remplacer certains caractères par ""
    Par Terminator dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 10/05/2007, 14h58

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