Extraire un chiffre dans une chaine

Résolu
dino -  
 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

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    awk -F "[]]|[[]" '/TOTO\[[0-9]/ {print $2}' fichier
    1
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Une façon parmi d'autres...

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

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

    0
  3. dino
     
    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
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      $ sed  's/[^[:digit:]]//g' plop 
      1
      2
      43
      0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    avec awk
    $ awk -F "[]]|[[]" '{print $2}' fichier
    1
    2
    3
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dino
     
    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 !
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      $ cat plop 
      TOTO[1]
      TiTi[2]
      TOTO[43]
      TUTU[123]

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

    Bonne journée !
    0