[Bash Linux] Compter caractère sur 1 ligne

Résolu/Fermé
tbosss Messages postés 7 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 16 novembre 2008 - 16 nov. 2008 à 13:43
tbosss Messages postés 7 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 16 novembre 2008 - 16 nov. 2008 à 15:21
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
A voir également:

5 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
16 nov. 2008 à 13:48
0
tbosss Messages postés 7 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 16 novembre 2008
16 nov. 2008 à 13:56
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
16 nov. 2008 à 14:43
[tmpfs]$ echo "abacadaeafa" | grep -o "a"
a
a
a
a
a
a
[tmpfs]$ echo "abacadaeafa" | grep -o "a" | grep -c a
6
[tmpfs]$
:-))
0
tbosss Messages postés 7 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 16 novembre 2008
16 nov. 2008 à 15:02
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
tbosss Messages postés 7 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 16 novembre 2008
16 nov. 2008 à 15:07
Ca fonctionne très bien avec un caractère compris entre a et z, un chiffre, mais avec un "." c'est nimportequoi xD
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
16 nov. 2008 à 15:19
Il faut protéger ton point avec un anti-slash.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tbosss Messages postés 7 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 16 novembre 2008
16 nov. 2008 à 15:21
Nikel. Tu m'as été d'une grande aide, je te remercie bien
0