[Bash Linux] Compter caractère sur 1 ligne

Résolu
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. Nikel. Tu m'as été d'une grande aide, je te remercie bien
    1. Ca fonctionne très bien avec un caractère compris entre a et z, un chiffre, mais avec un "." c'est nimportequoi xD
      1. Modérateur
        Il faut protéger ton point avec un anti-slash.
    2. 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
      1. 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?
        1. Modérateur
          [tmpfs]$ echo "abacadaeafa" | grep -o "a"
          a
          a
          a
          a
          a
          a
          [tmpfs]$ echo "abacadaeafa" | grep -o "a" | grep -c a
          6
          [tmpfs]$
          :-))