Es gibt (meines Wissens) keine Version grep
, die intern gzip / bzip2 unterstützt. Stattdessen gibt es Shell - Scripts, wie bzgrep
und zgrep
, die im Wesentlichen der Anruf gunzip
/ bunzip2
Binärdateien und die Ausgabe in grep über stdin zuzuführen. Daher kann das -H
Flag nicht wie erwartet funktionieren, wenn Sie grep nicht direkt aufrufen.
bzgrep -H Musterdatei.bz2 enthält keinen Dateinamen, sondern "Standardeingabe"
Ich dachte, -H sollte immer den Dateinamen vor der übereinstimmenden Zeile drucken. Dies gilt für grep, nicht für bzgrep:
$ grep -H pattern file1 file1: data pattern data $ bzgrep -H pattern file2.bz2 (standard input): data pattern data
Gibt es eine Problemumgehung dafür? Ich muss hunderte von bz2-Dateien grepen, ich kann sie nicht alle vor der Suche dekomprimieren ...
2 Antworten auf die Frage
Ich habe mir bzgrep angesehen. Es war tatsächlich eine Bash-Skriptdatei. Die Änderung des Skripts zur Behebung des Problems war ziemlich einfach. Daher fragte ich mich, ob jemand anderes es in einer neueren Version von bzgrep korrigiert hatte. Ich habe herausgefunden, dass es unter Ubuntu und Debian korrigiert wird, aber nicht unter CentOS.
Wenn jemand auf dasselbe Problem stößt, melden Sie sich einfach bei einem neueren System an und kopieren Sie das Shell-Skript bzgrep. Es ist die einfachste Lösung.
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4