Recherche d'une ligne avec espace

Résolu/Fermé
Guizmo - 27 mars 2015 à 16:07
 Guizmo - 30 mars 2015 à 10:41
Bonjour à tous,

Je débute avec la programmation en shell et je suis un petit peu dépassé. J'ai un fichier texte dans lequel j'aimerais retrouver une ligne qui contient une suite de nombre.
"17 1 0 2 1"
Malheureusement les espaces me posent beaucoup de problèmes et je n'ai pas de succès avec la commande grep. Si quelqu'un à une solution je suis preneur.

Je vous remercie d'avance
A voir également:

1 réponse

salut,

qu'as-tu essayé ?
quelle est erreur retournée ?

donne un échantillon représentatif du fichier, mets en évidence les lignes qui devraient correspondre,...
1
Salut,
j'ai essayé du grep -w 17*****1*****0 montext.txt mais sans succès.
Il n y a pas d'erreur mais je n'arrive pas à retrouver ma ligne et uniquement cette ligne.

le fichier en un peu plus long donne ça :

4 2 0 1 3 3 0 5 0
0.00000000e+00 2.00000009e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00
17 1 0 2 1 1 0 0 0
1 11000000
5.52925659e+02 0.00000000e+00
17 2 0 2 1 1 0 0 0
1 11000000
5.51666077e+02 0.00000000e+00
0
Utilisateur anonyme
27 mars 2015 à 17:44
ce n'est pas le fait que la ligne contient des espaces qui pose problème, c'est que ta regex ne veut pas dire ce que tu crois.
d'ailleurs, quel est le motif recherché (pas la ligne. le motif !) ?
que contient la ligne qui te permet de la sélectionner ? quelle partie est, ou n'est pas, significative ?

en attendant, un petit tour dans le
man 7 regex
, zou. ;)
0
Je voudrais récupérer le numéro de cette ligne pour le mettre dans une variable. Le contenu de la ligne n'a pas d'importance mais je ne peux pas la chercher à cause des espaces entre les nombres.
Si j'effectue un "grep 17 1" il va chercher uniquement toutes les lignes avec un 17 et pas cette ligne là.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419 > Guizmo
28 mars 2015 à 13:29
Salut,
Si j'effectue un "grep 17 1" il va chercher uniquement toutes les lignes avec un 17 et pas cette ligne là.
Ah bon ?
$ cat plop 
4 2 0 1 3 3 0 5 0
0.00000000e+00 2.00000009e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00
17 1 0 2 1 1 0 0 0
1 11000000
5.52925659e+02 0.00000000e+00
17 2 0 2 1 1 0 0 0
1 11000000
5.51666077e+02 0.00000000e+00

$ grep -n '^17 1' plop
3:17 1 0 2 1 1 0 0 0
0
Guizmo > zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021
30 mars 2015 à 09:34
le grep -n '^17 1' fonctionne je te remercie.
Comment puis je mettre automatiquement le numéro de ligne dans une variable?
0