[Bash Linux] Compter caractère sur 1 ligne

Résolu
tbosss Messages postés 7 Statut Membre -  
tbosss Messages postés 7 Statut Membre -
Bonjour,
je n'arrive pas a trouver comment compter le nombre d'un caractère sur une ligne. Par exemple savoir le nombre de "." sur une ligne en utilisant :

for i in `cat tmp.txt`
do

#ce qui me permettrer de traiter chaque ligne séparement

done

Meci
Configuration: Linux
Firefox 3.0.3

5 réponses

  1. tbosss Messages postés 7 Statut Membre
     
    Merci,
    la solution a mon probléme avance. Donc la j'arrive a lire mon fichier ligne par ligne :

    while read ligne
    do

    done < tmp.txt

    Mais comment faire pour compter combien il y a de point dans cette ligne? j'ai vu des solution qui compte le nombre de caractères de la ligne.
    Des idées?
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      [tmpfs]$ echo "abacadaeafa" | grep -o "a"
      a
      a
      a
      a
      a
      a
      [tmpfs]$ echo "abacadaeafa" | grep -o "a" | grep -c a
      6
      [tmpfs]$
      :-))
      0
  2. tbosss Messages postés 7 Statut Membre
     
    Merci pour ta réponse jipicy.
    Par contre cela ne fonctionne pas dans mon cas, je suis en trin de chercher pourquoi.
    Mon code :

    #!/bin/bash

    while read ligne
    do
    echo $ligne | grep -o "." | grep -c .

    done < tmp2.txt

    Par exemple sur la première ligne de mon fichier j'ai 1 seul "." et il m'affiche 47.

    Merci
    0
  3. tbosss Messages postés 7 Statut Membre
     
    Ca fonctionne très bien avec un caractère compris entre a et z, un chiffre, mais avec un "." c'est nimportequoi xD
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Il faut protéger ton point avec un anti-slash.
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. tbosss Messages postés 7 Statut Membre
     
    Nikel. Tu m'as été d'une grande aide, je te remercie bien
    0