Recherche de lignes avec SED
sedforever
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
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 !!!!!!
:)
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
-
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:~$
-
Re,
Avec sed
lami20j@debian:~$ sed -nr '/1236(59|[6-7][0-9]|80)/p' bbb A 123659 B 123671 D 123680 F 123677
-
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-
- 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
-