|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
rebonjour,
J'ai encore une question. Promis après j'arrête. J'utilise grep en ce moment. Il me permet de selectionner des lignes dont la n-ieme suivante contient un motif (mettons toto). Ex : mon fichier: Code :
Plutôt sympa. Mais je n'ai pas de resultat assez fin avec ça. Il me faudrait par exemple, selectionner les lignes pour lesquelles la suivante contient titi et la "2eme suivante" contient toto. Bien sûr la commande ne passe pas Si vous avez une commande magique, quelque soit le langage... Merci pour votre attention et votre aide |
||
|
|
10
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
…
? /!\ uuoc |
|
|
10
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
salut,
En fait j'ai pas assez specifié le format du fichier. ( Je viens de reéditer mon premier post ) Les lignes ne contiennent pas que "titi" ou "toto". Je pensais à appliquer les deux commandes separemment et comparer les resultats mais c'est tout un programme |
|
|
10
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
Code :
grep -B2 'toto' fichier | grep -B1 'titi'
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
10
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
Ca ne passe pas. La première commande grep selectionne toutes les lignes dont la "2eme suivante" contient toto. Donc le retour ne contient pas titi a priori mais seulement tata (et bien d'autres). Le 2eme grep ne voit pas de titi et donc il ne renvoie rien.
Je peux le faire en 2 commandes je pense avec ton idée: grep -B 1 toto | grep titi recuperer la ligne L de titi puis grep -B 1 L monfichier |
|
|
10
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Et avec "sed" ?
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
10
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
C'est presque ça oui. Le truc c'est que cette commande donne les lignes de
-titi -toto -la suivante de toto Il me faudrait la précédente de titi. |
|
|
10
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
sinon dans l'idée de n_Bah:
Code :
grep '(* sans \n)tata(* sans \n)\n(* sans \n)titi(* sans \n)\n(* sans \n)toto(* sans \n)' |
|
|
10
|
|
|
#9 | |||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Citation:
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|||
|
|
10
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
Pas compris pourquoi ca ne fonctionne pas chez moi mais en ajoutant un N:
J'ai les 3 lignes que je veux ;p. tata titi toto toto2 |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com