Archiv der Kategorie: Linux

grep dir was

Hier soll nur grep „global search for a regular expression and print out matched lines“ und einige Anwendungsmöglichkeiten behandelt werden.
Die Variationen:

  • agrep (Approximate GREP) ist eine besondere Version aus der Familie der grep-Programme, die im Gegensatz zu allen Varianten eine unscharfe (fuzzy) Textstringsuche ermöglicht.
  • egrep (Extended grep) ist zur einfacheren Suche mit erweiterten regulären Ausdrücken. So haben die Zeichen ?, +, {, |, (, und ) bei egrep eine besondere Bedeutung für den Ausdruck, und müssen mit einem umgekehrten Schrägstrich (engl.: backslash) geschützt werden, wenn sie als Text gefunden werden sollen.
  • fgrep kann immer anstelle von grep verwendet werden, falls das zu suchende Muster keine regulären Ausdrücke enthält. Alle Sonderzeichen in der Musterzeichenkette verlieren ihre Sonderbedeutung und werden als Bestandteil des Musters verstanden.

sollen hier nur kurz erwähnt werden, um auf deren Existenz hinzuweisen.
Mit grep finden sie rasch alles in einzelnen, oder brestimmten Dateien, in Dateien bestimmter Verzeichnisse, auf der HD und manchmal finden Sie sogar noch mehr, als alles. 8)
Syntax:
grep [-CVbchilnsvwx] [-Anzahl] [-AB Anzahl] [[-e ] Ausdruck | -f Datei] [Datei ...]
Übrigens habe ich grep noch nie installiert, denn es ist wirklich fast überall vorhanden, außer auf Windows natürlich. Mit „man grep“ bekommt man auch schon die wesentlichsten Informationen. Zuerst wird darauf hingewiesen, egrep, fgrep and rgrep auch als grep -E. grep -F und grep -r verwendet werden kann, aber wir wollen uns einmal die Optionen ansehen.
Optionen:
-A Anzahl gibt Anzahl Zeilen Kontext nach jeder gefundenen Zeile aus
-B Anzahl gibt Anzahl Zeilen Kontext vor jeder gefundenen Zeile aus
-C gibt 2 Zeilen Kontext vor und nach jeder gefundenen Zeile aus
-Anzahl gibt Anzahl Zeilen Kontext vor und nach jeder gefundenen Zeile aus
-V gibt die Versionsnummer auf die Standardfehlerausgabe
-b gibt die Position jeder gefundenen Stelle mit aus
-c gibt nur die Gesamtzahl der gefundenen Stellen aus
-e Ausdruck sucht nach Ausdruck
-f Datei Datei enthält die Ausdrücke, nach denen gesucht werden soll.
-h unterdrückt die Dateinamen vor jeder Fundstelle
-i ignoriert Groß- und Kleinschreibung
-l gibt nur die Dateinamen mit Fundstellen aus
-n gibt die Zeilennummer zu jeder Fundstelle aus
-s (silent) keine Ausgabe außer Fehlermeldungen
-v gibt nur Zeilen aus, die den Ausdruck nicht enthalten
-w gibt nur Zeilen aus, in denen der Ausdruck als komplettes Wort vorkommt
-x gibt nur Zeilen aus, die den Ausdruck als ganze Zeile enthalten
Einsatzmöglichkeiten:
Grep wird in erster Linie dann eingesetzt, wenn viele Dateien durchsucht werden müssen, zum Beispiel die Quelldateien eines Computerprogramms oder viele Logdateien. In Zusammenarbeit mit „find“ kann ein ganzer Dateibaum gelesen werden. Einzelne Dateien können im allgemeinen effizienter mit einem Editor wie „vim“ durchsucht werden. Ein zweites Einsatzgebiet ist der automatisierte Aufruf in allen Arten von Shell-Skripten, oft im Rahmen einer Kette von Befehlen.
.) Einfachste Anwendung: suchen nach einem Ausdruck in einer Datei, etwa wie
grep hallo irgendwas.datei
Der Befehl kann auch in Shell-Skripten, beispielsweise in Pipes eingesetzt werden. Durch Kommandozeilenschalter kann die Arbeitsweise von grep geändert werden, so ist es beispielsweise möglich,
* alle Zeilen herauszusuchen, die den angegebenen Text nicht enthalten („-v“),
* nur Zeilen herauszusuchen, in denen das Suchmuster als ganzes Wort enthalten ist („-w“)
* die Zeilennummern, in denen der Text enthalten ist, auszugeben (Kommandozeilenschalter „-n“),
* den Dateinamen aller Dateien auszugeben, die den angegebenen Text enthalten.
* die GNU-Variante bietet darüber hinaus die Möglichkeit, nicht die komplette Zeile auszugeben, in der ein Ausdruck vorkommt, sondern lediglich alle Vorkommen des Ausdrucks selbst (Kommandozeilenschalter „-o“).
Beispiel zur Suche nach einer Zeichenfolge in mehreren Dateien:
grep -lir "Zeichenfolge" Verzeichnis/*
oder
find . -exec grep -l -e Suchtext {} ;
Praktischer Einsatz von grep ist z.B. sich unübersichtliche Config-Dateien ohne Kommentare anzeigen zu lassen mit
cat /etc/beispiel.conf |grep -e"^[^#]"
Generell funktioniert grep so, daß es alle Zeilen ausgibt, in denen das Suchmuster vorkommt. Alle Zeilen, die das Suchmuster nicht enthalten, werden weggefiltert.

Das Suchmuster kann im einfachsten Fall eine Zeichenkette sein. Die eigentliche Stärke des grep-Befehls ist aber, daß das Suchmuster ein sogenannter Regulärer Ausdruck (daher auch grep: Get Regular ExPression) sein kann. Damit kann eine Suche definiert werden, die beispielsweise nach allen Wörtern sucht, die auf „ing“ enden, aber nicht mit „D“ oder „B“ anfangen.

Normalerweise wird Groß- und Kleinschreibung von grep unterschieden, möchte man das verhindern, kann man grep mit der Option „-i“ aufrufen.

Als Ausdruck akzeptiert grep reguläre Ausdrücke mit den folgenden Steuerzeichen:

c ein einzelner Buchstabe paßt auf sich selbst
. ein Punkt paßt auf jeden Buchstaben außer auf das Zeilenende
? das dem Operator `?‘ vorangehende Muster kann null oder einmal vorkommen
* das dem Operator `*‘ vorangehende Muster kann 0 mal oder öfter vorkommen
+ das dem Operator `+‘ vorangehende Muster kann einmal oder öfter vorkommen
| die durch den Operator `|‘ verbundenden Argumente werden oder verknüpft
^ (Caret) paßt auf den Zeilenanfang
$ paßt auf das Zeilenende
paßt auf das Wortende[*]
[Buchstaben]
paßt auf alle Buchstaben; dabei können einzelne Buchstaben, aber auch Bereiche in der Form `von-bis‘ angegeben werden; wenn der erste Buchstabe nach `[‚ ein `^‘ ist, paßt der Ausdruck auf alle Buchstaben außer den Aufgeführten
( ) die Klammern fassen Ausdrücke zusammen; außerdem wird der auf den in Klammern eingeschlossene Teil des Musters passende Text markiert und mit einem folgenden `N‘ Ausdruck referenziert (Tag)
N referenziert die auf das in der N-ten runden Klammern eingeschlossene Muster passende Zeichenkette.
jedes der Sonderzeichen kann, durch einen `‘ (Backslash) eingeleitet, sich selbst suchen
b paßt auf kein Zeichen, sondern auf den Anfang oder das Ende eines Wortes
B symbolisiert den Raum innerhalb eines Wortes
w paßt auf alle alphanumerischen Zeichen [A-Za-z0-9]
W paßt auf alle nichtalphanumerischen Zeichen [^A-Za-z0-9]
Die Rangfolge der Operatoren ist (von der höchsten zur niedrigsten):`(‚, `)‘, `?‘, `*‘, `+‘ und `|‘. Die anderen Operatoren sind mit den anderen Buchstaben gleichrangig.
Mit ‚+‘ und/oder ‚|‘ und w lassen sich ganz nette Spielchen treiben und man kann nach den verschiedensten Wortkombinationen in einem file suchen.
Viel Spaß beim „grepen“. 😉
Weitere interessante Links:
LinWiki ManPage:grep oder
grep
Shell-Programmierung
und natürlich
grep

(744)

OpenVZ-Kernel für Suse Linux Enterprise Server

Das OpenVZ-Projekt hat einen angepassten Kernel für den Suse Linux Enterprise Server 10 (SLES) veröffentlicht. Damit kann unter SLES die Virtualisierung auf Betriebssystemebene verwendet werden. Noch ist der Kernel nicht als stabil gekennzeichnet. (OpenVZ, Virtualisierung)

(241)

Canonical to Provide Optimized Ubuntu OS Layer for VMware Virtual Appliances

VMWORLD/SAN FRANCISCO, Calif. – September 11, 2007 – Canonical Ltd., the commercial sponsor of Ubuntu, today announced the availability of its Ubuntu JeOS (Just Enough Operating System) edition.

Ubuntu JeOS (pronounced "Juice") is an efficient variant of the popular desktop and server operating system, configured specifically for virtual appliances.

read more

Dazu habe ich auch gefunden:

debian fanboy schreibt: „Ubuntu hat Gerüchten zufolge ein minimal OS angekündigt. Es soll JeOS (Just Enough Operating System) heissen und wird sich besonders gute für VM Appliances eignen. Mehr dazu weiss Pro-Linux, mit Canonical stellt Ubuntu JeOS vor. Auf den offiziellen Ubuntu Seiten konnte ich noch keine näheren Infos finden. In diesem Zusammenhang besonders interessant ist die zweite News auf Pro-Linux, VMware gibt Tools im Quellcode frei. Die Vmware Tools sind spezielle Treiber (NIC, Grafik,…) für Vmware Virtualisierungprodukte und zudem kommuniziert der Host via diese mit dem Guest. Wenn RHEL, Debian und $OS_OF_CHOICE diese Tools integrieren entfallen viele administrative Arbeiten in grösseren Farmen. Es wird eine bessere Integration stattfinden, Code-Review und womöglich gibts dann Support von Red Hat und/oder Novell dafür. Aus wirtschaftlicher Sicht wurde dieser Schritt sicher auch deshalb gemacht um nicht zuviel Marktanteile an Xen zu verlieren, denn bis heute ist Vmware ESX Server dominant.“

(162)

Fedora 8 Test 2 erschienen

Die Linux-Distribution Fedora 8 ist in der zweiten Testversion erschienen, die Beta-Reife erlangt haben soll und zudem bereits alle neuen Funktionen mitbringen sollte. KDE 4.0 haben die Entwickler nun nicht mehr aufgenommen. (Fedora, Red Hat)

(271)

Ubuntu als Grundlage für virtuelle Maschinen

Auf der VMWorld in San Francisco hat Ubuntu-Hauptsponsor Canonical eine abgespeckte Variante des Linux-Betriebssystems für virtuelle Appliances vorgestellt. JeOS soll von Software-Anbietern als Grundlage verwendet werden. (Ubuntu, Virtualisierung)

(175)