grep -f gerando saída inesperada

2

Usando "grep -of file1.txt file2.txt" (conteúdo do arquivo abaixo), recebo a saída:

and
if
pineapple

Por que 'dif' e 'for' estão faltando? Tenho que usar outros interruptores?

file1.txt

and
dif
for
if
apple
pineapple

arquivo2.txt

andiforpineapple
    
por Naveen 14.05.2011 / 06:29

2 respostas

1

Se você quiser pesquisar novamente o arquivo de entrada para cada padrão especificado:

$ 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

No entanto, isso terá uma ordem de saída diferente do que você deseja, se o arquivo de origem tiver mais de uma linha. Desde que você não disse o que você está usando para isso, eu não sei se isso vai funcionar para o seu problema real.

    
por 14.05.2011 / 07:14
3

É assim:

andiforpineapple
  ^found and
   ^continuing search from i
    ^found if
     ^continuing search from o
       ^found pineapple
    
por 14.05.2011 / 06:38

Tags