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

recherche négative d'une chaîne de caractères sous unix - Shell/Batch - Programmation

Marsh Posté le 04-11-2005 à 08:56:39    

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.

Reply

Marsh Posté le 04-11-2005 à 08:56:39   

Reply

Marsh Posté le 04-11-2005 à 09:08:22    

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.
Reply

Marsh Posté le 04-11-2005 à 09:22:39    

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

Reply

Marsh Posté le 04-11-2005 à 09:51:53    

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

Reply

Marsh Posté le 04-11-2005 à 10:00:36    

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"

Reply

Marsh Posté le 04-11-2005 à 10:12:24    

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

Reply

Marsh Posté le 04-11-2005 à 10:14:20    

il a lut le man [:benou]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 04-11-2005 à 10:41:02    

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

Reply

Marsh Posté le 04-11-2005 à 10:45:56    

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

Reply

Marsh Posté le 04-11-2005 à 10:46:36    

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 §§§§§§§§
Reply

Marsh Posté le 04-11-2005 à 10:46:36   

Reply

Marsh Posté le 04-11-2005 à 11:01:19    

egrep

Reply

Marsh Posté le 04-11-2005 à 11:05:40    

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

Reply

Marsh Posté le 04-11-2005 à 11:30:24    

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...

Reply

Marsh Posté le 04-11-2005 à 11:48:07    

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

Reply

Marsh Posté le 04-11-2005 à 12:43:27    

super! et merci!

Reply

Marsh Posté le 04-11-2005 à 17:42:32    


       -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.
Reply

Marsh Posté le 04-11-2005 à 17:48:37    

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 :/

Reply

Marsh Posté le 04-11-2005 à 19:18:53    

grep (GNU grep) 2.5.1 [:spamafote]
 


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

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed