Recherche de lignes avec SED

sedforever -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,

Je suis tout nouveau sur ce forum, et une question existentielle me turlupine et hante mes nuits en ce moment.
Je dois développer un script permettant de faire de faire des sélections entre deux fichiers.

Mon problème est le suivant : Comment sélectionner avec un sed , les lignes contenant des chaines de caractères numériques appartenant à un certain intervalle de valeurs ?

ex :

A 123659
B 123671
C 523687
D 123680

Je ne voudrais sélectionner que les lignes comprises dans l 'intervalle [123659-123680]
donc ici exclure la C.

Merci d'avance pour vos réponses et bonne journée à vous !!!!!!

:)
Configuration: Windows XP Internet Explorer 7.0

3 réponses

  1. lami20j
     
    Salut,

    Avec grep

    lami20j@debian:~$ cat bbb
    A 123659
    B 123671
    C 523687
    D 123680
    E 123623
    F 123677
    G 123610
    h 123601
    lami20j@debian:~$ grep -E '1236(59|[6-7][0-9]|80)' bbb
    A 123659
    B 123671
    D 123680
    F 123677
    lami20j@debian:~$
    
    0
  2. lami20j
     
    Re,

    Avec sed

    lami20j@debian:~$ sed -nr '/1236(59|[6-7][0-9]|80)/p' bbb
    A 123659
    B 123671
    D 123680
    F 123677
    0
  3. lami20j
     
    Re,

    Et si tu ne veux pas utiliser les regex mais plutôt une comparaison de genre >= et <=
    lami20j@debian:~$ awk '$2>=123659 && $2<=123680 {print}' bbb
    A 123659
    B 123671
    D 123680
    F 123677
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      T'as rien avec Perl ? Je suis déçu ;-DDD
      0
      1. lami20j > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Re,

        Je commence (ce que je ne faisait pas ) à utiliser l'artillerie lourde si le besoin s'impose ;-).
        Ca me permettre d'apprendre d'autres outils, ou je suis un novice pour le moment, je l'espère que pas pour longtemps.

        Pour te faire plaisir ;-)))
        lami20j@debian:~$ cat bbb
        A 123659
        B 123671
        C 523687
        D 123680
        E 123623
        F 123677
        G 123610
        h 123601
        lami20j@debian:~$ perl -ne 'print if /1236(59|[67]\d|80)/' bbb
        A 123659
        B 123671
        D 123680
        F 123677


        P.S. Je n'ai pas fait attention et je suis parti sur un intervalle quand il ne le fallait pas
        Je parle pour [6-7] qu'on peut écrire [67] tout simplement
        0
      2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > lami20j
         
        Merci ;-))


        PS. J'avais vu dans un de tes messages que tu commençais à t'intéresser à awk et sed...
        Mais bon vu tes connaissances en Perl, ça va être un jeu d'enfant ;-))
        0