2 votes

grep -f générant une sortie inattendue

En utilisant "grep -of file1.txt file2.txt" (contenu du fichier ci-dessous), j'obtiens un résultat :

and
if
pineapple

Pourquoi les mots "dif" et "for" sont-ils absents ? Dois-je utiliser d'autres commutateurs ?

fichier1.txt

and
dif
for
if
apple
pineapple

fichier2.txt

andiforpineapple

3voto

Jane Points 9

C'est comme ça :

andiforpineapple
  ^found and
   ^continuing search from i
    ^found if
     ^continuing search from o
       ^found pineapple

1voto

Endros Points 11

Si vous voulez rechercher à nouveau le fichier d'entrée pour chaque motif spécifié :

$ cat patterns.txt 
and
dif
for
if
apple
pineapple
$ cat source.txt 
andiforpineapple
$ while read; do grep -o -e"$REPLY" source.txt; done <patterns.txt
and
dif
for
if
apple
pineapple

Toutefois, l'ordre des lignes de sortie sera différent de celui que vous souhaitez apparemment, si le fichier source comporte plus d'une ligne. Comme vous n'avez pas dit à quoi cela sert, je ne sais pas si cela fonctionnera pour votre problème réel.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X