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 :

[vi] Remplacer une suite d'espaces par un seul caractère


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 143
    Par défaut [vi] Remplacer une suite d'espaces par un seul caractère
    Bonjour,

    je souhaite dans un fichier, remplacer un suite d'espace par un seul caractère.

    j'ai testé s/ //g, mais chaque espace est remplacé, ce que je ne souhaite pas.

    Quel syntaxe utiliser?

    Merci

    Kondor76

  2. #2
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Par défaut
    Salut,

    Je dirais s/ //
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 143
    Par défaut
    Citation Envoyé par Winnt Voir le message
    Salut,

    Je dirais s/ //

    Euh sans vouloir contredire, c'est ce que j'ai mis dans mon post...

    mais merci quand même

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Que souhaites-tu faire :
    Remplacer toutes les suites de X espaces par le caractere _ : exemple avec 5 espace Explication :
    • :%s : remplacer dans tout le fichier
    • / : separateur d'expression
    • \s : le caractere espace
    • \{5} : exactement 5 occurences de l'expression precedente (ici \s, donc 5 espaces)
    • g : plusieurs fois par ligne si besoin


    Remplacer tous les champs contenant au moins 2 espaces par le caractere _ : Explication :
    • :%s : remplacer dans tout le fichier
    • / : separateur d'expression
    • \s : le caractere espace
    • \s : un second caractere espace
    • \+ : au moins une occurence de la derniere expression (donc ici au moins un deuxieme espace, jusqu'a l'infini)
    • g : plusieurs fois par ligne si besoin


    Tout ceci dans vim bien sur.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 143
    Par défaut
    J'imagine que c'est pareil avec sed ?

  6. #6
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par kondor76 Voir le message
    J'imagine que c'est pareil avec sed?
    Oui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $> sed 's/\s\s\+/_/g' mon_fichier_source > mon_fichier_sortie
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  7. #7
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Par défaut
    Salut,

    Sans vouloir contredire voici ce que tu mets dans ton post
    Citation Envoyé par kondor76
    j'ai testé s/ //g, mais chaque espace est remplacé, ce que je ne souhaite pas.
    Et voici ce que je proposais
    Citation Envoyé par winnt
    Je dirais s/ //
    Il y a une petite différence notée en rouge : s/ //g
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  8. #8
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Pour enrichir la base de connaissances :

    Ceci :
    fait encore autre chose : cela supprime uniquement le premier caractere espace de chaque ligne (enfin non, ca le remplace par "rien", et il suffit donc d'inserer le caractere voulu entre les deux /)
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  9. #9
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Par défaut
    Merci de l'info gangsoleil.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  10. #10
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Une autre façon, qui a l'avantage d'être portable, de remplacer toute suite de plus d'un espace par un caractère, ici "_":


  11. #11
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Ou plus simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/  */ /g' monFichier
    (rien avant s, 2 espaces seulement avant l'étoile et un espace en remplacament

  12. #12
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Ou plus simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/  */ /g' monFichier
    (rien avant s, 2 espaces seulement avant l'étoile et un espace en remplacament
    C'est plus simple en effet mais je ne suis pas sûr que ça réponde au problème posé, à moins qu'un seul espace soit considéré comme une suite d'espace.

  13. #13
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Ou plus simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/  */ /g' monFichier
    (rien avant s, 2 espaces seulement avant l'étoile et un espace en remplacament
    Ce n'est pas equivalent : dans ce cas, tu remplaces toutes les suites d'un ou plusieurs espaces par un seul.

    Pour remplacer une suite d'espace par autre chose, tu n'as a priori que deux expressions regulieres correctes (plus des composees de celles-ci) :
    • espace espace + --> espace suivi d'au moins un espace
    • espace espace espace * --> 2 espaces suivis de 0 ou plusieurs espace(s)


    Apres, ce n'est que de la syntaxe de remplacement,
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

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

Discussions similaires

  1. [Sed]Remplacer une série d'espaces par un délimiteur
    Par progfou dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 24/01/2011, 15h09
  2. [RegEx] Remplacer une suite d'espace blanc par un seul
    Par Sayrus dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2008, 11h31
  3. [Debutant]Remplacer une liste de valeur par une liste de val
    Par Sebbo dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 31/03/2006, 12h15
  4. remplacer une frame de menu par du JS
    Par 17mounir dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/08/2005, 17h39
  5. Réponses: 4
    Dernier message: 16/04/2004, 16h31

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