[script bash] compter le nombre de caractères

Fermé
the_moon - 2 avril 2005 à 23:42
 Skyll - 17 avril 2008 à 21:54
Encore une question pour le projet que je dois rendre bientôt (je suis dans un IUT d'informatique):

Comment pourais-je faire pour compter le nombre de "/" sur une ligne d'un fichier texte ?
Chaque ligne est en fait le chemin complet permetant d'acceder à un fichier, elle peut donc contenir des espaces si un dossier porte un nom de plusieurs mots.
j'ai pensé à 'wc' (word counter) mais je ne sais pas comment l'utiliser pour qu'il compte les /, et je ne sais pas s'il existe une autre commande pour compter les occurences d'un seul caractère dans une chaine donnée.


(j'arrive a selectionner la ligne voulue et à en récuperer des morceaux, mon problème est juste d'arriver à les compter)

Merci beaucoup !

Et merci à ceux qui ont répondu à toutes mes précédentes questions, ça m'a beaucoup aidé à avancer !
A voir également:

7 réponses

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
2 avril 2005 à 23:57
Bonsoir.

Y'a sans doute beaucoup de façon de faire ça

En voilà déjà une:
PBG4:~ adrien$ cat test
/klsjdq
/qsd/qsdgfd
/zer/ghf/sdf
/zer/fgh/vcbb/ret
PBG4:~ adrien$ awk 'BEGIN{ FS="/" }{ print NF-1 }' test 
1
2
3
4
Séparateur de champ: "/"
Nombre de champs dans la ligne courante: "NF"
Nombre de séparateurs de champ: "NF-1"

@+
0
Merci beaucoup, je vais essayer ça !

Encore une question, qui me permettrait d'améliorer un peu mon proogramme:
Est-ce qu'il est possible de limiter le nombre de caractères lus par la commande 'read' ?
Je voudrais que l'utilisateur ne puisse taper qu'un nombre limité de caractères, par exemple 30, plutôt que de devoir couper un morceau du texte par la suite !

Merci !
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
3 avril 2005 à 02:28
Pas de problemes:
-n nchars
                     read returns after reading nchars characters rather  than
                     waiting for a complete line of input.


(cf man bash, section SHELL BUILTIN COMMANDS /read)

Bonne nuit!
0
Merci !

Bonne nuit à toi aussi, j'essayerai tout ça demain, et je pense que j'arriverai à tout finir avec ça.
0

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

Posez votre question
Pour information :

si file vaut /home/toto/dir/foo.txt

${file##*/} vaut foo.txt ! Ce qui devrait répondre à la question.

Cordialement.
0
C'est peu être une question débile car je ne dois pas avoir le niveau... Mais où faut il recopier la commande pour qu'elle s'éxécute ? =)
0
Nan c'est bon problème réglé !

Merci =)
0