Archiv verlassen und diese Seite im Standarddesign anzeigen : SED Ausgabe umdrehen
Romanday
01-06-2005, 10:39
Ich verstehe nicht, warum
ls -al | sed -n -e 'G;h;$p'
die gesammte Ausgabe umdreht.
Am Anfang ist doch Hold Space leer, also wird doch durch G nur \n
angefügt.
G fängt doch aber nicht am Ende der Zeichenkette an zu arbeiten.
peschmae
01-06-2005, 17:58
Bei mir machts das nicht :confused:
Sed kaputt? ;)
MfG Peschmä
Romanday
01-06-2005, 22:56
Bei mir funktioniert es mit:
GNU sed Version 4.1.2
hab es aus:
--
fügt nach jeder Zeile ein Leerzeichen ein (der hold space ist ja leer). Mit sed kann man auch die Funktionsweise von tac (ein umgekehrtes cat; dreht die Reihenfolge der Zeilen um) nachbilden:
bash$ sed -n -e 'G;h;$p'
http://www.tty1.net/sed-tutorium/html/ar01s05.html
--
peschmae
02-06-2005, 06:26
Achso, so umdrehen. Ich dachte links-rechts-irgendwie :D
War wohl noch nicht ganz wach.
Du machst ja nach dem Einlesen von jeder Zeile erst ein G. D.h. alles was bisher gelesen wurde wird _hinten_ am Pattern-Space angehängt (und dann der Pattern-Space komplett in den Hold-Space verschoben).
d.h.
1) G (nichts)
2) h (1. Zeile)
3) p (Ich nehme mal an gibt nix aus weil der Patternspace leer ist)
4) G (-> 2. Zeile im Pattern space, 1. hinten angehängt)
5) h (2. Zeile\n1.Zeile)
etc.
Aber ich verstehe noch nicht ganz wie das mit dem Ausgeben am Ende geht...
255) G (alles-1, verkehrt an letzte Zeile angehängt)
256) h (alles)
257) p (nichts!? - ist ja alles in Hold...)
Achso, der Pattern-Space ist nach einem Hold nicht leer sondern hat das Zeugs immer noch drin - und $p macht irgendwie im Gegensatz zu p nur am Schluss was...
Ach ja, steht ja hier:
Das folgende Beispiel ist wohl das kürzeste sinnvolle Skript in sed, das es gibt. Es gibt die Zeilenanzahl der bearbeiteten Datei aus (wc -l):
bash$ sed -n -e '$='
Das Dollarzeichen '$' ist in diesem Fall nicht das Zeilenende einer RE (es fehlen nämlich die //), sondern ist eine Adresse von sed, die die letzte Zeile des letzten Inputfiles benennt, und das Kommando '=' gibt die aktuelle Zeilennummer vor dem Output aus.
Gute Doku hast du da gefunden :)
MfG Peschmä
Romanday
02-06-2005, 19:50
Gute Doku hast du da gefunden :)
MfG Peschmä
Nicht so gut wie deine Erklärungen.:D
Jetzt hab ich es begriffen. Append war das Schlüsselwort.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.