Forum Programmation.shell [recuperer la position d'une chaine de caractere]

Posté par  .
Étiquettes : aucune
0
2
fév.
2007
Bonjour à tous,

tt d'abord, merci à tt ceux qui m'apporteront leur aide.

Voici ce que je veux faire :
- j’ai un fichier avec des lignes de type :
Attribut1 : « +TITI+TOTO» Attribut2 : « +VAL1+VAL2+VAL3 » ….
- je veux, récupérer pour chaque ligne contenant « Attribut1 », la valeur de la chaine (ici +TITI+TOTO). Le pb, est que la posistion est différente d’une ligne à l’autre (je ne peux pas faire le cut)
-> en gros, je veux savoir quels sont les différentes valeur de la balise « Attribut1 » dans mon fichier

comment récupérer la postion du debut de l’énumération, et la position de fin ? tout cela pour faire un cut de type :
cut –c $pos1-$pos2
  • # awk

    Posté par  . Évalué à 1.

    Pourquoi ne pas utiliser awk:

    awk '($1 ~ Attribut1) {print $3}'
  • # En utilisant sed

    Posté par  . Évalué à 1.

    si j'ai bien compris le problème, ceci devrait marcher dans les cas pas trop tordus:
    sed 's,.*Attribut1[^«]*«\([^»]*\)».*,\1,g'
  • # cut ?

    Posté par  . Évalué à 2.

    ok, tu ne peux pas utiliser les positions avec cut. Mais si tu as des séparateurs fiables dans ton fichier, tu peux utiliser les options -d et -f de cut.

    man est ton ami :-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.