Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
908 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Faire une seule recherche de 2 types de chaine de caractère

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire une seule recherche de 2 types de chaine de caractère

n°1450093
marc90
Posté le 30-09-2006 à 11:49:45  profilanswer
 

Voilà ce qu'il y'a comme problème:
 
J'ai 2 commandes pour faire des recherches de chaines de caractères:
 
 grep '^1;' nomFichier qui permet d'afficher les lignes de nomFichier qui commence par la chaîne 1;
 grep ';1;' nomFichier qui permet d'afficher les lignes de nomFichier qui contiennent la chaîne ;1;
 
Comment faire la même recherche en une seule commande?
 
 

mood
Publicité
Posté le 30-09-2006 à 11:49:45  profilanswer
 

n°1450097
Sve@r
Posté le 30-09-2006 à 12:06:59  profilanswer
 

marc90 a écrit :

Voilà ce qu'il y'a comme problème:
 
J'ai 2 commandes pour faire des recherches de chaines de caractères:
 
 grep '^1;' nomFichier qui permet d'afficher les lignes de nomFichier qui commencent par la chaîne 1;
 grep ';1;' nomFichier qui permet d'afficher les lignes de nomFichier qui contiennent la chaîne ;1;
 
Comment faire la même recherche en une seule commande?


grep ne te permet de faire qu'une seule recherche à la fois - Si vraiment tu ne veux qu'un seul grep, tu peux t'en sortir comme ça :
sed -e "s/^1/;1;/" nomFichier |grep ";1;"
 
Je ne comprends pas trop ton besoin de n'avoir qu'une seule commande. Si ton besoin réel est de n'avoir qu'une seule ligne (par exemple tu voudrais rediriger en une seule fois l'ensemble des deux recherches dans un fichier), tu peux utiliser les parenthèses pour grouper les 2 commandes
(grep "^1" nomFichier; grep ";1;" nomFichier) > result


Message édité par Sve@r le 30-09-2006 à 12:47:51

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1450106
marc90
Posté le 30-09-2006 à 12:36:35  profilanswer
 

Le besoin de n'avoir qu'une seule commande est de ne pas séparer les lignes de résultats

n°1450109
Sve@r
Posté le 30-09-2006 à 12:44:20  profilanswer
 

marc90 a écrit :

Le besoin de n'avoir qu'une seule commande est de ne pas séparer les lignes de résultats


Tu veux dire que si les lignes 1 et 3 contiennent "1 xxx" et que la ligne 2 contient "yyy;1;zzz", tu veux avoir comme résultat la ligne 1 suivie de la ligne 2 et de la ligne 3 et non la ligne 1 et la ligne 3 données par le 1er grep puis la ligne 2 donnée par le 2° grep ?
 
Si c'est ça faut oublier le grep trop limité et passer par du awk. Ou alors ma 1ère solution où je transforme toutes les chaînes de la 1ère recherche en chaines de la 2° puis je ne recherche que la 2°. Mais ça te donne un résultat où certaines lignes sont transformées et ne correspondent plus réellement aux lignes du fichier...


Message édité par Sve@r le 30-09-2006 à 12:47:12

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1450160
marc90
Posté le 30-09-2006 à 14:21:29  profilanswer
 

Voilà c'est ça si la premiere ligne contient ^1; et la seconde ;1; et la 3eme comme la première, il faut afficher la premiere ligne, la seconde puis la troisième et non pas la premiere et la troisième puis la seconde. OK faut utiliser autre chose que grep, comme quoi on arrive vite aux limites des commandes.

n°1450163
0x90
Posté le 30-09-2006 à 14:25:22  profilanswer
 

man grep && grep '\(^\|;\)1;' :o
 


Message édité par 0x90 le 30-09-2006 à 14:26:06
n°1450196
marc90
Posté le 30-09-2006 à 15:09:36  profilanswer
 

Ha j'avais fait un truc du genre mais au lieu de mettre le \ devant les parenthèses je le mettait devant le point-virgule. Je suis sopulagé qu'on puisse faire ça avec GREP. Merci Ox90. Tu travailles dans les shell?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Faire une seule recherche de 2 types de chaine de caractère

 

Sujets relatifs
[BATCH]Remplacer chaîne par une autre chaîne récupéréérecherche de données dans excel sans ouvrir les fichiers
Faire un split sur le caractère "\"tester si chaine contient un saut de ligne
Outil pour convertir les caractères spéciauxWORD - VBA - Police de caractére
[DirectX] Recherche programmeurs experimentésQuestion sur les types de données de MySQL
[VB] Intégration chaîne de caractère dans tableau 
Plus de sujets relatifs à : Faire une seule recherche de 2 types de chaine de caractère


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR