Ich habe ein Problem, das ich jemand bin der Hoffnung, in der Lage, mit ...grep -f auf Dateien in einem Zip-Ordner
ich zu helfen, eine rekursive fgrep/grep -f Suche bin Ausführen auf einem gezippt Ordner mit Sie den folgenden Befehl in einem meiner Programme:
der Befehl I
grep -r -i -z -I -f /path/to/pattern/file /home/folder/TestZipFolder.zip
Innerhalb der pattern-Datei verwende ist die Zeichenfolge „Dog“, die ich für die Suche versuche.
Im gezippten Ordner befinden sich eine Reihe von Textdateien mit der Zeichenfolge "Dog".
Der Befehl grep -f findet erfolgreich die Textdateien mit der Zeichenkette "Hund" in 3 Dateien innerhalb des gezippten Ordners, aber die Ausgabe wird in einer Zeile ausgegeben und einige seltsame Zeichen erscheinen am Ende dh PK (als unten gezeigt). Und wenn ich die Ausgabe in eine Datei in meinem Programm andere Zeichen versuchen und drucken erscheinen am Ende wie ^B^T^@
Ausgabe vom 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 würde ich erhalten jeweils von die Dateien, bei denen die Zeichenkette "Hund" gefunden wurde, um in einer neuen Zeile zu drucken, so dass sie nicht alle in einer Zeile gruppiert sind, so wie sie jetzt sind? Woher kommen auch die "PK" und andere seltsame Zeichen in der Ausgabe und wie verhindere ich, dass sie erscheinen?
Wunsch Ausgang
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 in diese Richtung, wobei der Benutzer in der Lage ist zu sehen, wo der String in der Datei (Sie tatsächlich die Ausgabe erhalten in diesem Format zu finden, wenn Sie den grep laufen Befehl für eine Datei, die keine Zip-Datei ist).
Ihre Hilfe bei dieser sehr geschätzt wird, dank
kann ich auch zeigen, wo die Übereinstimmung in der Datei ist, wie im Befehl grep in meiner Frage ?, anstatt nur die Datei aufzulisten, in der sie gefunden wurde? - vielen Dank –
können Sie die gewünschte Ausgabe bereitstellen? Wenn Sie das tun, kann ich es versuchen. – blackSmith
Meine Frage aktualisiert, um die gewünschte Ausgabe anzuzeigen. Es ist das gleiche Format, in dem die Ausgabe ist, wenn Sie den Befehl grep für einen Ordner ausführen, der keine Zip-Datei ist (dh es gibt den Namen der Datei an, in der eine Übereinstimmung gefunden wurde, nachdem der Doppelpunkt anzeigt, wo er ist) viel –