Ola,

Je suis à la recherche d'un grep qui me permettra de me donner toutes les lignes qui contiennent un nombre de 3 chiffres commençant par 5 (bref tout de 500 à 599).

A titre d'exemple le fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
>cat grep_test.txt
osef
pas 45189
bien 524 et
512 mais pas
54268 en revanche
il faut prendre 550
et pas le reste
Il faudrait donc que ma commande me retourne les lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
bien 524 et
512 mais pas
il faut prendre 550
Si je fais simplement ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
>grep '5[0-9][0-9]' grep_test.txt
pas 45189
bien 524 et
512 mais pas
54268 en revanche
il faut prendre 550
Ce n'est pas bon

Il ne faut évidemment éviter les nombres qui terminent, commencent ou contiennent 5XX.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
>grep '[^0-9]5[0-9][0-9][^0-9]' grep_test.txt
bien 524 et
mais je perd les lignes qui commencent ou finissent avec un 5XX.

Donc je me suis dit qu'il fallait que mon 5XX soit le début d'une ligne ou précéder par un blanc, ou la fin d'une ligne ou suivi par un blanc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 >grep '[ ^]5[0-9][0-9][ $]' grep_test.txt
bien 524 et
Toujours pas

Une idée ?