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 :

Nombre d'espaces par ligne


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Par défaut Nombre d'espaces par ligne
    Bonjour,

    J'aimerai connaître le nombre d'espaces qui se suivent dans un texte par ligne, mais uniquement quand j'ai au moins 2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    première ligne  avec mes     espaces
    ligne  deux avec des       es      paces aussi
    Et en retour j'aimerai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    1:2 espaces
    1:5 espaces
    2:2 espaces
    2:7 espaces
    2:6 espaces

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour,

    es-tu sûr de la finalité ? Car, s'il existe le caractère espace, il existe aussi le caractère tabulation ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ echo "première ligne  avec mes     espaces
    ligne  deux avec des       es      paces aussi"|sed 's/@//g;:z;s/  /@ /;t z;s/[^ @]//g'
     @  @@@@
    @   @@@@@@ @@@@@
    Y a plus qu'à compter les arobases en ajoutant 1 à chaque groupe.

  3. #3
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Bonjour,
    Pas la plus optimum, mais voici une façon de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cat nb_space
    première ligne  avec mes     espaces
    ligne  deux avec des       es      paces aussi
    $ i=0;while read ligne; do ((i++)); echo -e "${ligne// /\n}" | uniq -c | grep '[0-9] $' | while read n ; do echo ${i}:$((++n)) ; done; done <nb_space
    1:2
    1:5
    2:2
    2:7
    2:6

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Par défaut
    Merci pour vos réponses.
    disedorgue sur ton exemple, j'ai l'impression que ça compte tous les espaces de chaque ligne.
    Peut-être je me suis mal exprimé, mais ce sont les espaces à la suite uniquement qui m'intéressent. Au moins une suite de 2 espaces, les simples espaces ne doivent pas apparaîtrent

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Hum. Son résultat est totalement identique au tien...

    L'idée de passer par uniq est excellent. Dommage qu'il faille le numéro de ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sed 's/./&\n/g' nb_space|uniq -dc|grep -v ' [0-9]\+ [^ ]'
          2
          5
          2
          7
          6

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Ce qui donne cette impression, c'est que je remplace tous les espace par un retour à la ligne, mais dans les faits pour uniq c'est le marqueur de fin de ligne, il ne reste plus qu'a compter le nombre de ligne vide consécutive auquel on fait +1 puisque l'on perd le premier espace.
    En fait, il y a juste un petit cas qui pose problème: si la ligne commence par un ou plusieurs espaces, alors si un, il en comptera 2, si plusieurs, alors il en comptera un de trop.
    Pour résoudre ce cas, il suffit juste de supprimer l'espace éventuel qui commence la ligne...

  7. #7
    Membre éclairé
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Par défaut
    Justement, il se peut que j'aie une tabulation en début de ligne, ou même plusieurs espaces qui doivent être identifiés.
    Même en fin de ligne, il se peut que j'ai quelques espaces que j'aimerai voir.

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

Discussions similaires

  1. [XSLT] Créer un tableau HTML en fixant le nombre de cases par ligne
    Par kingmandrax dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 03/07/2006, 16h07
  2. limiter le nombre d'images par ligne
    Par cyrill.gremaud dans le forum Langage
    Réponses: 16
    Dernier message: 04/05/2006, 11h46
  3. [JTextArea] Limiter nombre de caractères par lignes
    Par doudine dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 17/02/2006, 17h26
  4. Limiter le nombre de caractère par ligne d'un textarea
    Par rantanplan08 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 04/01/2006, 19h31
  5. nombre de caractères par ligne à l'affichage
    Par trotters213 dans le forum Oracle
    Réponses: 3
    Dernier message: 03/11/2005, 09h51

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