Extraire un chiffre dans une chaine [Résolu/Fermé]

Signaler
-
 dino -
Bonjour,

Je sous ksh.

Je voudrais extraire un chiffre d'une chaine de caractere qui sont dans un fichier :
TOTO[1]
TOTO[2]
TOTO[3]
....etc

C'est le chiffre entre [] qui m'interesse.

Avez vous une idée SVP ?

Merci.

Bonne journée.





6 réponses

Messages postés
18238
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 novembre 2020
5 096
awk -F "[]]|[[]" '/TOTO\[[0-9]/ {print $2}' fichier
                        
                
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
35806
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
23 novembre 2020
5 669
Salut,

Une façon parmi d'autres...

$ cat plop 
TOTO[1]
TOTO[2]
TOTO[43]

$ grep -o '[[:digit:]]*' plop
1
2
43

Merci ,mais apparament mon OS ne connait pas l'option -o :
grep -o '[[:digit:]]*' TOTO.txt
grep: Not a recognized flag: o

je suis sous AIX 7.1

Si t'a d'autres propositions ...


Merci
Messages postés
35806
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
23 novembre 2020
5 669
$ sed  's/[^[:digit:]]//g' plop 
1
2
43
Messages postés
18238
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 novembre 2020
5 096
hello
avec awk
$ awk -F "[]]|[[]" '{print $2}' fichier
1
2
3
Super ! merci ...ca fct !

mais j'ai omis de mentioner qlq chose ...au faite dans mons fichier je voudrais prendre que les chaines TOTO["chiffre"] ,les autres lignes TITI["chiffres"],..etc ne m'interesse pas


Merci beaucoup !
Messages postés
35806
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
23 novembre 2020
5 669
$ cat plop 
TOTO[1]
TiTi[2]
TOTO[43]
TUTU[123]

$ sed -n '/^TOTO/ {s/[^[:digit:]]//gp}' plop
1
43
Merci a tous ca fct !!
Vous etes les meilleurs !

Bonne journée !