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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  recherche négative d'une chaîne de caractères sous unix

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recherche négative d'une chaîne de caractères sous unix

n°1238386
richard3
Posté le 04-11-2005 à 08:56:39  profilanswer
 

Bonjour,
Je cherche depuis trois jours une méthode qui me permette de lister sous unix, parmi une collection de fichiers (par exemple ot*), ceux qui ne contiennent pas une chaîne de caractères donnés (par exemple 26741). J'ai essayé sous awk et sed, mais je n'y arrive pas.
Quelqu'un aurait-il une piste?
Merci.

mood
Publicité
Posté le 04-11-2005 à 08:56:39  profilanswer
 

n°1238394
0x90
Posté le 04-11-2005 à 09:08:22  profilanswer
 

grep -L
(cf. man )


Message édité par 0x90 le 04-11-2005 à 09:09:46

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1238397
Elmoricq
Modérateur
Posté le 04-11-2005 à 09:22:39  profilanswer
 

-L ?!
 
Sur mon grep, c'est -v pour inverser la sélection.  [:atlantis]

n°1238410
richard3
Posté le 04-11-2005 à 09:51:53  profilanswer
 

-L et -V ne conviennent pas, je veux obtenir une liste des fichiers qui ne contienne PAS 26741.

n°1238414
Elmoricq
Modérateur
Posté le 04-11-2005 à 10:00:36  profilanswer
 

J'ai dit -v, pas -V
Et selon ta version de grep, faut faire un man, apparemment tous les grep ne sont pas identiques selon l'OS.
Avec ma version, faudrait faire un : grep -lv "26741" ot*
 
Ensuite on a bien compris ce que tu voulais, par contre faudrait que tu comprennes que le réflexe à avoir sous Unix, c'est "man ma_commande"

n°1238428
richard3
Posté le 04-11-2005 à 10:12:24  profilanswer
 

Merci ça marche! Comment as-tu trouvé cette combinaison?

n°1238429
elianor
bannie 17 fois
Posté le 04-11-2005 à 10:14:20  profilanswer
 

il a lut le man [:benou]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
n°1238461
richard3
Posté le 04-11-2005 à 10:41:02  profilanswer
 

erreur, après plusieurs essais ça ne marche pas...

n°1238466
Elmoricq
Modérateur
Posté le 04-11-2005 à 10:45:56  profilanswer
 

Tu es un peu trop précis là, pourrais-tu être plus vague ?

n°1238467
elianor
bannie 17 fois
Posté le 04-11-2005 à 10:46:36  profilanswer
 

richard3 a écrit :

erreur, après plusieurs essais ça ne marche pas...


 
Tu peux nous dire ce que donne grep --version qu'on en sache pluss :o


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
mood
Publicité
Posté le 04-11-2005 à 10:46:36  profilanswer
 

n°1238475
couak
Posté le 04-11-2005 à 11:01:19  profilanswer
 

egrep

n°1238481
Elmoricq
Modérateur
Posté le 04-11-2005 à 11:05:40  profilanswer
 

elianor a écrit :

Tu peux nous dire ce que donne grep --version qu'on en sache pluss :o


 
Juste histoire de rigoler :
 

$ grep --version
grep: illegal option -- -
grep: illegal option -- e
grep: illegal option -- r
grep: illegal option -- o
Usage: grep -hblcnsviw pattern file . . .
$


 
:D

n°1238510
richard3
Posté le 04-11-2005 à 11:30:24  profilanswer
 

j'ai 3 fichiers traceriri  traceriri1 traceriri2 qui contiennent:
toto
est
beau
et fort
mais bete  
 
toto
est
beau
et fort
mais bete et con  
 
 
toto
est
beau
et fort
mais bete  
 
je lance grep -lv *con* traceriri*
 
et il me répond:
traceriri
traceriri1
traceriri2
 
voili voila...

n°1238542
Elmoricq
Modérateur
Posté le 04-11-2005 à 11:48:07  profilanswer
 

Ah ben oui, c'est normal ça. Puisque grep trouve des lignes sans le mot "con" dans tous les fichiers. Faut réfléchir aussi [:mlc]
 
Une simple boucle et le tour est joué, exemple en ksh :

for i in `\ls -1 traceriri*`; do  
! grep -q con $i && echo $i
done

n°1238585
richard3
Posté le 04-11-2005 à 12:43:27  profilanswer
 

super! et merci!

n°1238976
0x90
Posté le 04-11-2005 à 17:42:32  profilanswer
 


       -L, --files-without-match
              Suppress normal output; instead print the  name  of  each  input
              file from which no output would normally have been printed.  The
              scanning will stop on the first match.


:fou:


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1238984
Elmoricq
Modérateur
Posté le 04-11-2005 à 17:48:37  profilanswer
 

Ah cool, bien pratique cette option.
 
Moi j'ai pas avec mon grep. Et puis on ne saura sans doute jamais pour le grep du monsieur, vu qu'il ne semble pas vouloir utiliser man :/

n°1239026
0x90
Posté le 04-11-2005 à 19:18:53  profilanswer
 

grep (GNU grep) 2.5.1 [:spamafote]
 


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.

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

  recherche négative d'une chaîne de caractères sous unix

 

Sujets relatifs
timestamp foire sur serveur unix.caracteres indesirables
Expressions régulières, recherche ds un .txtDOS : manipulation de chaîne ...
Debutant - Comparaison de chaine de caractèremessage exception: negative line
compter le nombre de fois que le mot est dans une chaine de caractére:Recherche avec résultat instantané
Recherche du maximum d une liste de nombres[resolu]effectuer une recherche et copier au passage
Plus de sujets relatifs à : recherche négative d'une chaîne de caractères sous unix


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