grep -f sur les fichiers dans un dossier zippé

J'ai un problème, je suis en espérant que quelqu'un sera en mesure de vous aider avec...

Je suis d'effectuer un appel récursif à fgrep/grep -f recherche sur une zippée dossier à l'aide de la commande suivante dans un de mes programmes:

La commande, je suis en utilisant

grep -r -i -z -I -f /path/to/pattern/file /home/folder/TestZipFolder.zip

À l'intérieur de la structure de fichier est la chaîne de caractères "Chien" que je suis en train de rechercher.

Dans la zippé jusqu'dossier il y a un certain nombre de fichiers de texte contenant la chaîne de caractères "Chien".

La commande grep -f de la commande avec succès trouve les fichiers de texte contenant la chaîne de caractères "Chien" dans 3 fichiers à l'intérieur de la fermeture éclair vers le haut dossier, mais elle imprime la sortie sur une seule ligne et des personnages étranges apparaissent à la fin je.e PK (comme illustré ci-dessous). Et quand j'essaie de l'impression à la sortie vers un fichier dans mon programme, d'autres personnages apparaissent à la fin comme ^B^T^@

De sortie de la commande grep-f de la commande:

TestZipFolder/test.txtThis is a file containing the string DogPKtest1.txtDog, is found again in this file.PKTestZipFolder/another.txtDog is written in this file.PK 

Comment aurais-je obtenir chacun des fichiers contenant la chaîne "Chien" n'a été trouvé pour imprimer sur une nouvelle ligne de sorte qu'ils ne sont pas tous regroupés sur une seule ligne comme ils sont maintenant?
Aussi où sont les "PK" et autres personnages étranges apparaissant dans la sortie, et comment faire pour les empêcher d'apparaître?

De sortie désiré

TestZipFolder/test.txt:This is a file containing the string Dog
TestZipFolder/test1.txt:Dog, is found again in this file
TestZipFolder/another.txt:Dog is written in this file

Quelque chose le long de ces lignes, en vertu de laquelle l'utilisateur est en mesure de voir où la chaîne de caractères peut être trouvé dans le fichier (que vous obtenez en fait la sortie dans ce format si vous exécutez la commande grep sur un fichier qui n'est pas un fichier zip).

de votre aide c'est très apprécié, merci

OriginalL'auteur perl-user | 2013-08-02