grep -f auf Dateien in einem Zip-Ordner

Ich habe ein problem ich bin in der Hoffnung, jemand wird in der Lage sein zu helfen, mit...

Bin ich durchführen einer rekursiven fgrep/grep -f-Suche auf ein Zip-Ordner mit dem folgenden Befehl in einem meiner Programme:

Der Befehl, den ich bin mit

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

Innerhalb der pattern-Datei die Zeichenfolge "Dog", dass ich versucht bin, zu suchen.

In der Zip-Ordner gibt es eine Reihe von text-Dateien, die die Zeichenfolge "Dog".

Den grep -f-Befehl erfolgreich findet die text-Dateien, die den string "Hund" in 3 Dateien im Zip-Ordner, aber es druckt die Ausgabe alles in einer Zeile einige seltsame Zeichen erscheinen am Ende ich.e PK (wie unten gezeigt). Und wenn ich versuche und drucken die Ausgabe in eine Datei in meinem Programm andere Zeichen erscheinen am Ende wie ^B^T^@

Ausgabe von grep -f Befehl:

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 

Wie kann ich die einzelnen Dateien, in denen die Zeichenfolge "Dog" wurde gefunden drucken in einer neuen Zeile, so dass Sie nicht alle zusammen gruppiert in einer Zeile wie Sie jetzt sind?
Auch, wo sind die "PK" und andere seltsame Zeichen, die aus der Ausgabe und wie kann ich verhindern, dass Sie angezeigt wird?

Gewünschte Ausgabe

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

Etwas entlang diesen Linien, wobei der Benutzer in der Lage, um zu sehen, in denen die Zeichenfolge gefunden werden kann in der Datei (die Sie tatsächlich erhalten die Ausgabe in dieses format, wenn Sie Sie ausführen den Befehl "grep" auf eine Datei, die nicht eine zip-Datei).

Eure Hilfe wird sehr geschätzt, Dank

InformationsquelleAutor perl-user | 2013-08-02
Schreibe einen Kommentar