SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

GUIDES UND TUTORIAL

Der Stream-Editor sed

sed liest aus der angegebenen Eingabedatei (normalerweise Standardeingabe) Zeile für Zeile in seinen Eingabepuffer, führt die Edieranweisungen auf die Zeile aus und schreibt sie auf die Standardausgabe. sed beendet seine Arbeit, wenn das Ende der Eingabedatei erreicht ist oder explizit eine Beendigungsanweisung erreicht wurde. Ein zweiter Puffer, der Haltepuffer, dient zum Zwischenspeichern von Ergebnissen. Aufruf:

sed [-n] [-e 'sed-Anweisungen'] [-f SKriptdatei] [eingabedatei(en)]

Der sed ist ein nicht-interaktiver Editor zur Dateibearbeitung.Da der sed nicht interaktiv arbeitet, muß die Befehlsfolge zum Editieren bereits beim Aufruf festliegen. Die angegebene Textdatei ist die Eingabedatei, deren Inhalt durch die Editieranweisungen (Skript) modifiziert und dann auf die Standardausgabe ausgegeben wird. Wird keine Eingabe-Datei angegeben, liest sed seine Eingabe von der Standardeingabe. Mit der Option -f Skriptdatei entnimmt der sed die Editieranweisungen der Skriptatei. Beachten Sie, daßdie Eingabe-Datei selbst nicht verändert wird! Soll das Ergenis der sed-Anweisung in einer (anderen) Datei gespeichert werden, dann mußdie Standardausgabe in diese Datei umgelenkt werden. Optionen:

-n Die Standardausgabe wird unterdrückt (sinnvoll im Zusammenhang mit Pipes).
-e Es werden die auf die Option -e folgenden Anweisungen für die Bearbeitung der Eingabedatei verwendet. Bei mehr als einer Anweisung müssen die Anweisungen durch Semikolon voneinander getrennt werden. Das Semikolon mußdabei ohne Leerzeichen direkt hinter der Anweisung stehen! Die -e Option kann mehrfach angegeben werden.
Um Fehlinterpretationen der Shell zu vermeiden, sollte die Editieranweisung grundsätzlich in Hochkomma oder Gänsefüßchen eingeschlossen werden.
-f Wird diese Option angegeben, dann liest sed seine Editieranweisungen aus der angegebenen Datei. Die Anweisungen müssen entweder durch Semikolon getrennt werden oder jede Anweisung muß in einer eigenen Zeile stehen. Leerzeichen hinter einer Anweisung sind nicht erlaubt. Die Anweisungen dürfen nicht in Hochkommata eingeschlossen werden. Durch mehrfache Angabe der -f Option können mehrere Skriptdateien zugewiesen werden.

sed kennt dieselben Anweisungen wie der interaktive Editor ed. Auch die Adressierung (Zeilennummern, reguläre Ausdrücke) erfolgt auf die gleiche Weise. Editieranweisungen haben die folgende Form:

[Adresse1 [,Adresse2 ] ] Funktion [Argumente]

Für jede Zeile der Eingabedatei werden alle Anweisungen ausgeführt. Durch Angabe einer Zeile (Adresse1) oder eines Zeilenbereichs (Adresse1, Adresse2) kann man deren Wirkung jedoch einschränken. Anstelle von Zeilennummern können auch reguläre Ausdrücke verwendet werden:

[/Muster/] Funktion [Argumente]
[/Muster1/ [/Muster2/]] Funktion [Argumente]

Im ersten Fall wird jede Zeile, die die Zeichenkette Muster enthält, von der Anweisung bearbeitet, im zweiten Fall alle Bereiche der Eingabedatei, die mit einer Zeile, die Muster1 enthält, beginnen und mit einer Zeile, die Muster2 enthält, enden.

Zusätzlich hat der sed noch weitere Funktionen (z.B. Test- und Sprungfunktionen, Klammerung, Wiederholungen) und er eignet sich daher besonders für Shell-Skripts. Interessant sind beim sed die Klammern:

  • ( ) runde Klammern:
    Die runden Klammern müssen mit \ geschützt werden. Sie legen die Gruppierung der einzelnen Komponenten fest. Zum Beispiel:
    AB*C deckt die Strings "AC", "ABC", ABBC" usw. ab.
    \(AB\)*C deckt die Strings "C", "ABC", "ABABC" usw. ab.

  • { } geschweifte Klammern
    Die geschweiften Klammern müssen mit \ geschützt werden. Sie legen Wiederholungen fest. Im folgenden stehen Z für ein Zeichen und M und N für Zahlen zwischen 0 und 253.
    1. genau M Wiederholungen: Z\{M\} z.B. alle Namen mit genau 8 Zeichen Länge: sed -n '/^.\{8\}/p' namen
    2. mindestens M Wiederholungen: Z\{M,\}
    3. zwischen N und M Wiederholungen: Z\{N,M\}

Die folgende Tabelle faßt die sed-Kommandos knapp zusammen.
a\ (append lines)
text
text wird nach der aktuellen Eingabezeile auf die Standardausgabe geschrieben. Besteht der text aus mehreren Zeilen, so muß das Fortsetzungszeichen \ am Zeilenende vor RETURN angegeben werden.
b [marke] (branch to label) Es wird zu der marke (in der Form :marke angegeben) des sed-Skripts gesprungen und dort die Abarbeitung des Skripts fortgesetzt. Fehlt die Angabe der Marke, so wird an das Skriptende gesprungen, was bewirkt, daß eine neue Eingabezeile gelesen und das sed-Skript von Beginn an mit dieser neuen Eingabezeile wieder ausgeführt wird.
c \ (change lines)
text
Der Inhalt des Eingabepuffers wird durch text ersetzt. Besteht text aus mehreren Zeilen, so muß das Fortsetzungszeichen \ am Zeilenende vor RETURN angegeben werden.
d (delete lines) Der Inhalt des Eingabepuffers wird gelöscht (nicht ausgegeben), und das sed-Skript wird sofort wieder von Beginn an mit dem Lesen einer neuen Eingabezeile gestartet.
D (Delete lines part of pattern space) Der erste Teil des Eingabepuffers (bis zum ersten Zeilenende) wird gelöscht (nicht ausgegeben), und das sed-Skript wird sofort wieder von Beginn an mit dem restlichen Eingabepuffer gestartet. Pattern space ist der Eingabepuffer.
g (get contents of hold area) Der Inhalt des Eingabepuffen wird durch den Inhalt des Haltepuffers (hold area) Überschrieben.
G (Get contents of hold area) Der Inhalt des Haltepuffers wird am Ende des Eingabepuffers (mit Newline-Zeichen getrennt) angehängt.
h (hold pattern space) Der Inhalt des Haltepuffers wird durch den Inhalt des Eingabepuffers überschrieben.
H (Hold pattern space) Der Inhalt des Eingabepuffers wird am Ende des Haltepuffers (mit Newline-Zeichen getrennt) angehängt.
i\ (insert lines)
text
Der text wird vor der aktuellen Eingabezeile auf die Standardausgabe geschrieben. Besteht der text aus mehreren Zeilen, muß das Fortsetzungszeichen \ am Zeilenende vor RETURN angegeben werden.
l (list pattern space on the standard output) Der Inhalt des Eingabepuffers wird auf die Standardausgabe geschrieben, wobei nicht druckbare Zeichen durch ihren ASCII-Wert (2-Ziffer) ausgegeben werden. Überlange Zeilen werden als mehrere einzelne Zeilen ausgegeben.
n (next line) Der Eingabepuffer wird auf die Standardausgabe ausgegeben, dann wird die nächste Eingabezeile in den Eingabepuffer gelesen.
N (Next line) Die nächste Eingabezeile wird an den Eingabepuffer (mit Newline-Zeichen getrennt) angehängt; die aktuelle Zeilennummer wird hierbei weitergezählt.
p (print) Der Eingabepuffer wird auf die Standardausgabe ausgegeben.
P (Print first part of the pattem space) Der erste Teil des Eingabepuffers (einschließlich des ersten Newline) wird auf die Standardausgabe ausgegeben.
q (quit) Nach Ausgabe des Eingabepuffers (nicht bei Option -n) wird zum Skriptende gesprungen und die Skriptausführung beendet.
r datei (read the contents of a file) Es wird die Datei datei gelesen und ihr Inhalt auf die Standardausgabe ausgegeben, bevor die nächste Eingabezeile gelesen wird. Zwischen r und datei muß genau ein Leerzeichen sein.
s/regulärer Ausdruck/text/[flags] (substitute) Im Eingabepuffer werden die Textstücke, die durch den regulären Ausdruck abgedeckt sind, durch den String text ersetzt. Anstelle des Trennzeichens / kann jedes beliebige Zeichen verwendet werden.
Die flags legen fest, wie der Ersetzungsprozeß durchgeführt werden soll.Es kann folgendes angegeben werden:
  • n: Es wird nur das n-te Teilstück ersetzt; n muß zwischen 1 und 512 liegen.
  • g (global): Es werden alle passenden Textstücke, die sich nicht überlappen, ersetzt.
  • p (print the pattem space if a replacement was made): Falls eine Ersetzung stattfand, dann wird der veränderte Eingabepuffer ausgegeben.
  • w datei (write the pattem space to a file if a replacement was made): Falls eine Ersetzung stattfand, dann wird der veränderte Eingabepuffer ans Ende der Datei datei geschrieben. Fehlt die Angabe von flags, so wird nur das erste passende Textstück des Eingabepuffers ersetzt. Es dürfen mehrere der vorgestellten flags-Angaben gleichzeitig verwendet werden, wobei dann g (falls verwendet) an erster Stelle stehen muß.
t [marke] (test substitutions): Falls seit dem letzten Lesen einer Eingabezeile oder der Ausführung einer t-Funktion eine Ersetzung stattfand, dann wird zu der marke (in der Form :marke angegeben) des sed-Skripts gesprungen und dort die Abarbeitung des Skripts fortgesetzt; im anderen Fall hat die Angabe dieser Funktion keine Auswirkung. Fehlt die Angabe der Marke, so wird an das Ende des Skripts gesprungen.
w datei (write to a file) Es wird der Eingabepuffer an das Ende der Datei datei geschrieben. Zwischen w und datei muß genau ein Leerzeichen sein.
x (exchange) Der Inhalt des Eingabepuffers wird mit dem Inhalt des Haltepuffers vertauscht.
y/string1/string2/ Im Eingabepuffer werden alle Zeichen, die in string1 vorkommen, durch die an gleicher Stelle in string2 stehenden Zeichen ersetzt. string1 und string2 müssen gleich lang sein.
!funktion Die angegebene Funktion (oder Gruppe von Funktionen bei Klammerung mit {}) wird nur für Zeilen ausgeführt, für die die angegebene Adreßangabe nicht zutrifft.
:marke Definiert eine Sprungmarke für die Funktionen b und t.
" Schreibt die aktuelle Zeilennummer als eigene Zeile auf die Standardausgabe.
{...} Klammert eine Gruppe von Funktionen, die nur ausgeführt werden, wenn der Eingabepuffer gefüllt ist.
# Dieses Zeichen leitet, wenn es als erstes Zeichen in einer Zeile angegeben wird, mit einer Ausnahme einen Kommentar ein. Die Ausnahme ist, wenn direkt nach # das Zeichen n angegeben wird; in diesem Fall wird die automatische Ausgabe, wie bei der Kommandozeilen-Option -n, ausgeschaltet. Der Rest der Zeile nach #n wird ebenfalls ignoriert. Eine Skript-Datei muß mindestens eine Nicht-Kommentarzeile enthalten. Eine leere Funktion wird ignoriert.

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere