Forum Programmation.autre sed sélection chaine et saut de ligne

Posté par  .
Étiquettes : aucune
0
7
sept.
2005
Bonjour,

J`ai un fichier texte qui contient dans l`entete (seconde ligne):

VD= 0 to 8 in 0.2

je veux récupérer la chaine comprise entre to et in afin de sauter une ligne
après les lignes qui contiennent cette chaine.

avant
...
91 8 6.82213E-05
92 -1 2.613E-11
...
après
...
91 8 6.82213E-05

92 -1 2.613E-11
...

je sais faire comme cela

sed -e '/ 8 /G' fichier.txt

En fait je ne sais pas remplacer 8 par une regex qui dit la chaine comprise entre to_ et _in. ( _ = espace)

si on peut m`aider merci d`avance.
  • # head+tail+cut

    Posté par  (site web personnel) . Évalué à 4.

    Tu peux récupérer le 8 comme ça:
    head -n2 fichier.txt | tail -n1 | cut -d' ' -f4
    (selon le format exact du fichier on peut sans doute faire plus simple)
    Après, il suffit de l'injecter dans sed:
    sed -e "/ `head -n2 fichier.txt | tail -n1 | cut -d' ' -f4` /G" fichier.txt

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

    • [^] # Re: head+tail+cut

      Posté par  . Évalué à 4.

      Oula que de processus pour récupérer le 8 ! J'aurais écrit :
      sed 'N; s/.*to \([0-9]\+\).*/\1/; q' fichier.txt
      • [^] # Re: head+tail+cut

        Posté par  . Évalué à 1.

        Bonjour,

        J`ai utilisé la premiére solution proposée car j`ai compris de suite le fonctionnement.

        La seconde est plus difficille a comprendre pour moi. Je manque de connaissances sur l`écriture de la commande (Utilisation des "variables" /\1/, et des "opérateurs" . * .Si vous avez des références, je suis prenneur.


        Merci pour votre aide.
        • [^] # Re: head+tail+cut

          Posté par  (site web personnel) . Évalué à 2.

          man perlretut
          man perlrequick
          man perlre

          (bon les regexp perl sont pas exactement les mêmes que les regexp GNU mais c'est une bonne intro sur le sujet je trouve)

          pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

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