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 !!!!!!
:)
A voir également:
- Recherche de lignes avec SED
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Partage de photos en ligne - Guide
- Recherche photo - Guide
- Copiez la ligne qui indique aux moteurs de recherche de ne pas référencer la page. ✓ - Forum Référencement
- Je recherche une chanson - Guide
3 réponses
Salut,
Avec grep
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
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 <=
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 ;-)))
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
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