{"id":10,"date":"2008-05-07T10:01:25","date_gmt":"2008-05-07T08:01:25","guid":{"rendered":"http:\/\/oktay.com\/wp\/wordpress\/?page_id=10"},"modified":"2008-05-07T10:04:09","modified_gmt":"2008-05-07T08:04:09","slug":"sed-deutsch","status":"publish","type":"page","link":"https:\/\/wp.oktay.com\/?page_id=10","title":{"rendered":"sed &#8211; deutsch"},"content":{"rendered":"<div id=\"top\">\n<div class=\"inner\" style=\"text-align: left;\">original: http:\/\/stefan.waidele.info\/sed-einzeiler-deutsche-ubersetzung\/<\/p>\n<h1>stefan.waidele.info<\/h1>\n<p>\u00a0<\/p>\n<div id=\"subtop\">My Virtual Press &#8211; because the freedom of press applies only to those who have one.<\/div>\n<p>\u00a0<\/p>\n<div id=\"rss\">\u00a0<\/div>\n<\/div>\n<\/div>\n<div class=\"narrowcolumn\">\n<div id=\"post-37\" class=\"post\">\n<div class=\"cal\"><span class=\"cald\">16\u00a0<\/span> <span class=\"calm\">01<\/span> <span class=\"caly\">2006<\/span><\/div>\n<h2>SED Einzeiler &#8211; Deutsche \u00dcbersetzung<\/h2>\n<div class=\"entries\">\n<p>Bitte sendet Korrekturen an mich. Vielen Dank!<\/p>\n<p>Das Orinal ist unter http:\/\/www.pement.org\/sed\/sed1line.txt zu finden.<\/p>\n<pre>---------------------------------------------------------------------------\r\nN\u00fctzliche, einzeilige Scripts f\u00fcr SED (Unix Stream Editor)    29. Dez. 2005\r\nZusammengstellt von Eric Pement - pemente[at]northpark[dot]edu  version 5.5\r\n\u00dcbersetzt von Stefan Waidele jun. - Stefan[at]Waidele[dot]info   5.5-de-0.9\r\n\r\nOriginal:\r\nUSEFUL ONE-LINE SCRIPTS FOR SED (Unix stream editor)        Dec. 29, 2005\r\nCompiled by Eric Pement - pemente[at]northpark[dot]edu        version 5.5\r\n\r\nDie aktuelle Version dieser Datei ist im englischen Original\r\nunter folgender Adresse zu finden:\r\n   http:\/\/sed.sourceforge.net\/sed1line.txt\r\n   http:\/\/www.pement.org\/sed\/sed1line.txt\r\n\r\nDiese Datei ist auch in anderen Sprachen erh\u00e4ltlich:\r\n  Chinese     - http:\/\/sed.sourceforge.net\/sed1line_zh-CN.html\r\n  Portuguese  - http:\/\/sed.sourceforge.net\/sed1line_pt-BR.html\r\n  Dutch       - http:\/\/sed.sourceforge.net\/sed1line_nl.html\r\n  German      - http:\/\/sed.sourceforge.net\/sed1line_de.html\r\n  French      - http:\/\/sed.sourceforge.net\/sed1line_fr.html\r\n  Spanish     - http:\/\/sed.sourceforge.net\/sed1line_es.html\r\n  Italian     - http:\/\/sed.sourceforge.net\/sed1line_it.html\r\n\r\nZEILEN-ABST\u00c4NDE:\r\n\r\n # Doppelter Zeilenvorschub\r\n sed G\r\n\r\n # Doppelter Zeilenabstand f\u00fcr Dateien, die Leerzeilen enthalten.\r\n # Die Ausgabe sollte keine zwei aufeinander folgenden Leerzeilen enthalten.\r\n sed '\/^$\/d;G'\r\n\r\n # Dreifacher Zeilenvorschub\r\n sed 'G;G'\r\n\r\n # Doppelter Zeilenvorschub r\u00fcckg\u00e4ngig machen\r\n # (Annahme: jede zweite Zeile ist leer)\r\n sed 'n;d'\r\n\r\n # F\u00fcge eine Leerzeile \u00fcber jeder Zeile ein, die \"regex\" enth\u00e4lt\r\n sed '\/regex\/{x;p;x;}'\r\n\r\n # F\u00fcge eine Leerzeile unter jeder Zeile ein, die \"regex\" enth\u00e4lt\r\n sed '\/regex\/G'\r\n\r\n # F\u00fcge eine Leerzeile \u00fcber und unter jeder Zeile ein, die \"regex\" enth\u00e4lt\r\n sed '\/regex\/{x;p;x;G;}'\r\n\r\nNummerierung\r\n\r\n # Nummeriere alle Zeilen (linksb\u00fcndig). Der Tabulator anstelle von Leerzeichen\r\n # erh\u00e4lt den Rand. (siehe auch die Bemerkung zu '\\t' am Ende dieser Datei)\r\n sed = filename | sed 'N;s\/\\n\/\\t\/'\r\n\r\n # Nummeriere alle Zeilen (Zahl rechtsb\u00fcndig in linker Spalte)\r\n sed = filename | sed 'N; s\/^\/     \/; s\/ *\\(.\\{6,\\}\\)\\n\/\\1  \/'\r\n\r\n # Nummeriere alle Zeilen, aber die Nummern von Leerzeilen werden nicht ausgegeben.\r\n sed '\/.\/=' filename | sed '\/.\/N; s\/\\n\/ \/'\r\n\r\n # Zeilen z\u00e4hlen (Nachahmung von \"wc -l\")\r\n sed -n '$='\r\n\r\nTEXT UMWANDLUNG UND ERSETZUNG:\r\n\r\n # IN EINER UNIX UMGEBUNG: Wandle DOS Zeilenvorsch\u00fcbe (CR\/LF) in das Unix-Format.\r\n sed 's\/.$\/\/'               # Annahme: Alle Zeilen enden mit CR\/LF\r\n sed 's\/^M$\/\/'              # Bei bash\/tcsh: Ctrl-V dann Ctrl-M\r\n sed 's\/\\x0D$\/\/'            # f\u00fcr ssed, gsed 3.02.80 oder neuere Versionen\r\n\r\n # IN EINER UNIX UMGEBUNG: Wandle Unix Zeilenvorsch\u00fcbe (LF) in das DOS-Format.\r\n sed \"s\/$\/`echo -e \\\\\\r`\/\"            # ksh\r\n sed 's\/$'\"\/`echo \\\\\\r`\/\"             # bash\r\n sed \"s\/$\/`echo \\\\\\r`\/\"               # zsh\r\n sed 's\/$\/\\r\/'                        # gsed 3.02.80 oder neuere Versionen\r\n\r\n # IN EINER DOS UMGEBUNG: Wandle Unix Zeilenvorsch\u00fcbe (LF) in das DOS-Format.\r\n sed \"s\/$\/\/\"                          # M\u00f6glichkeit 1\r\n sed -n p                             # M\u00f6glichkeit 2\r\n\r\n # IN EINER DOS UMGEBUNG: Wandle DOS Zeilenvorsch\u00fcbe (CR\/LF) in das Unix-Format.\r\n # Die kann mit mit der UnxUtils Version von sed, Version 4.0.7 oder neuer\r\n # gemacht werden. Die UnxUtils Version von sed kann durch die zus\u00e4tzliche\r\n # \"--text\" Option bestimmt werden, die beim Aufruf mit \"--help\" angezeigt wird.\r\n # Ansonsten kann die Umwandlung von DOS-Zeilenvorsch\u00fcben in UNIX-Zeilenvorsch\u00fcbe\r\n # nicht mit sed unter DOS vorgenommen werden. Benutzen Sie stattdessen \"tr\".\r\n sed \"s\/\\r\/\/\" infile &gt;outfile         # UnxUtils sed v4.0.7 oder neuer\r\n tr -d \\r outfile            # GNU tr Version 1.22 oder neuer\r\n\r\n # L\u00f6sche alle Einr\u00fcckungen (Leerzeichen, Tabulatoren) vom Anfang jeder Zeile\r\n # Richtet alle Zeilen linksb\u00fcndig aus.\r\n sed \u2019s\/^[ \\t]*\/\/\u2019                    # (siehe auch die Bemerkung zu \u2018\\t\u2019 am Ende dieser Datei)\r\n\r\n # L\u00f6sche unsichtbare Zeichen (Leerzeichen, Tabulatoren) vom Ende aller Zeilen\r\n sed \u2019s\/[ \\t]*$\/\/\u2019                    # (siehe auch die Bemerkung zu \u2018\\t\u2019 am Ende dieser Datei)\r\n\r\n # L\u00f6sche unsichtbare Zeichen sowohl am Anfang als auch am Ende jeder Zeile\r\n sed \u2019s\/^[ \\t]*\/\/;s\/[ \\t]*$\/\/\u2019\r\n\r\n # F\u00fcge 5 Leerzeichen am Anfang jeder Zeile ein. (Einr\u00fcckung)\r\n sed \u2019s\/^\/     \/\u2019\r\n\r\n # Alle Zeilen rechtsb\u00fcndig ausrichten (Spaltenbreite: 79 Zeichen)\r\n sed -e :a -e \u2019s\/^.\\{1,78\\}$\/ &amp;\/;ta\u2019  # set at 78 plus 1 space\r\n\r\n # Zentriere alle Zeilen in einer 79-Zeichen breiten Spalte.\r\n # Bei Methode 1 bleiben Leerzeichen am Zeilenanfang und -ende erhalten.\r\n # Bei Methode 2 werden Leerzeichen am Zeilenanfang gel\u00f6scht und es\r\n # folgen keine Leerzeichen am Zeilenende.\r\n sed  -e :a -e \u2019s\/^.\\{1,77\\}$\/ &amp; \/;ta\u2019                     # M\u00f6glichkeit 1\r\n sed  -e :a -e \u2019s\/^.\\{1,77\\}$\/ &amp;\/;ta\u2019 -e \u2019s\/\\( *\\)\\1\/\\1\/\u2019  # M\u00f6glichkeit 2\r\n\r\n # Ersetze (Suchen und Ersetzen) \u201cfoo\u201d mit \u201cbar\u201d in jeder Zeile\r\n sed \u2019s\/foo\/bar\/\u2019                    # Ersetzt nur das 1. Vorkommen pro Zeile\r\n sed \u2019s\/foo\/bar\/4\u2032                   # Ersetzt nur das 4. Vorkommen pro Zeile\r\n sed \u2019s\/foo\/bar\/g\u2019                   # Ersetzt ALLE Vorkommen von \u201cfoo\u201d mit \u201cbar\u201d\r\n sed \u2019s\/\\(.*\\)foo\\(.*foo\\)\/\\1bar\\2\/\u2019 # Ersetzt nur das vorletzte Vorkommen pro Zeile\r\n sed \u2019s\/\\(.*\\)foo\/\\1bar\/\u2019            # Ersetzt nur das letzte Vorkommen pro Zeile\r\n\r\n # Ersetze \u201cfoo\u201d mit \u201cbar\u201d NUR in Zeilen die \u201cbaz\u201d enthalten\r\n sed \u2018\/baz\/s\/foo\/bar\/g\u2019\r\n\r\n # Ersetze \u201cfoo\u201d mit \u201cbar\u201d AUSSER in Zeilen die \u201cbaz\u201d enthalten\r\n sed \u2018\/baz\/!s\/foo\/bar\/g\u2019\r\n\r\n # Ersetze \u201cscarlet\u201d, \u201cruby\u201d oder \u201cpuce\u201d mit \u201cred\u201d\r\n sed \u2019s\/scarlet\/red\/g;s\/ruby\/red\/g;s\/puce\/red\/g\u2019   # Die meisten seds\r\n gsed \u2019s\/scarlet\\|ruby\\|puce\/red\/g\u2019                # Nur GNU sed \r\n\r\n # Kehre die Reihenfolge der Zeilen um (entspricht \u201ctac\u201d)\r\n # Bug\/Feature in HHsed v1.5 l\u00f6scht hierbei Leerzeilen\r\n sed \u20181!G;h;$!d\u2019               # M\u00f6glichkeit 1\r\n sed -n \u20181!G;h;$p\u2019             # M\u00f6glichkeit 2\r\n\r\n # Kehre die Reihenfolge der Buchstaben innerhalb jeder Zeile um (entspricht \u201crev\u201d)\r\n sed \u2018\/\\n\/!G;s\/\\(.\\)\\(.*\\n\\)\/&amp;\\2\\1\/;\/\/D;s\/.\/\/\u2019\r\n\r\n # F\u00fcge Zeilenpaare nebeneinander zusammen (entspricht \u201cpaste\u201d)\r\n sed \u2018$!N;s\/\\n\/ \/\u2019\r\n\r\n # Falls eine Zeile mit einem R\u00fcckw\u00e4rtsstrich \u201c\\\u201d endet, f\u00fcge die n\u00e4chste hinzu.\r\n sed -e :a -e \u2018\/\\\\$\/N; s\/\\\\\\n\/\/; ta\u2019\r\n\r\n # Falls eine Zeile mit einem Gleichheitszeichen \u201c=\u201d beginnt,\r\n # f\u00fcge die vorhergehende hinzu und ersetzt das \u201c=\u201d mit einem Leerzeichen.\r\n sed -e :a -e \u2018$!N;s\/\\n=\/ \/;ta\u2019 -e \u2018P;D\u2019\r\n\r\n # F\u00fcge Kommas in Zahlenfolgen ein. Aus \u201c1234567\u2033 wird \u201c1,234,567\u2033\r\n gsed \u2018:a;s\/\\B[0-9]\\{3\\}\\&gt;\/,&amp;\/;ta\u2019                     # GNU sed\r\n sed -e :a -e \u2019s\/\\(.*[0-9]\\)\\([0-9]\\{3\\}\\)\/\\1,\\2\/;ta\u2019  # Andere seds\r\n\r\n # F\u00fcge Kommas in Zahlenfolgen mit Dezimalpunkt und Vorzeichen ein.  (GNU sed)\r\n gsed -r \u2018:a;s\/(^|[^0-9.])([0-9]+)([0-9]{3})\/\\1\\2,\\3\/g;ta\u2019\r\n\r\n # F\u00fcge alle 5 Zeilen eine Leerzeile ein. (Nach 5, 10, 15, 20,\u2026 Zeilen)\r\n gsed \u20180~5G\u2019                  # GNU sed\r\n sed \u2018n;n;n;n;G;\u2019             # andere seds\r\n\r\nDRUCKEN AUSGEW\u00c4HLTER ZEILEN:\r\n\r\n # Ausgabe der ersten 10 Zeilen einer Datei (wie \u201chead\u201d)\r\n sed 10q\r\n\r\n # Ausgabe der ersten Zeilen einer Datei (wie \u201chead -1\u2033)\r\n sed q\r\n\r\n # Ausgabe der letzten 10 Zeilen einer Datei (wie \u201ctail\u201d)\r\n sed -e :a -e \u2018$q;N;11,$D;ba\u2019\r\n\r\n # Ausgabe der letzten beiden Zeilen einer Datei (wie \u201ctail -2\u2033)\r\n sed \u2018$!N;$!D\u2019\r\n\r\n # Ausgabe der letzten Zeilen einer Datei (wie \u201ctail -1\u2033)\r\n sed \u2018$!d\u2019                    # M\u00f6glichkeit 1\r\n sed -n \u2018$p\u2019                  # M\u00f6glichkeit 2\r\n\r\n # Ausgabe der vorletzten Zeile einer Datei\r\n sed -e \u2018$!{h;d;}\u2019 -e x              # Bei einzeiligen Dateien wird eine Leerzeile ausgegeben\r\n sed -e \u20181{$q;}\u2019 -e \u2018$!{h;d;}\u2019 -e x  # Bei einzeiligen Dateien wird die Zeile ausgegeben\r\n sed -e \u20181{$d;}\u2019 -e \u2018$!{h;d;}\u2019 -e x  # Bei einzeiligen Dateien wird nichts ausgegeben\r\n\r\n # Ausgabe der Zeilen, die durch den Regul\u00e4ren Ausdruck (Regex) definiert sind (wie \u201cgrep\u201d)\r\n sed -n \u2018\/regexp\/p\u2019           # M\u00f6glichkeit 1\r\n sed \u2018\/regexp\/!d\u2019             # M\u00f6glichkeit 2\r\n\r\n # Ausgabe der Zeilen, die den Regul\u00e4re Ausdruck NICHT erf\u00fcllen (wie \u201cgrep -v\u201d)\r\n sed -n \u2018\/regexp\/!p\u2019          # M\u00f6glichkeit 1, entspricht obiger L\u00f6sung\r\n sed \u2018\/regexp\/d\u2019              # M\u00f6glichkeit 2, Einfacher Syntax\r\n\r\n # Ausgabe der Zeile direkt oberhalb des Regex, jedoch nicht die Zeile\r\n # die den Regex erf\u00fcllt.\r\n sed -n \u2018\/regexp\/{g;1!p;};h\u2019\r\n\r\n # Ausgabe der Zeile direkt unterhalb des Regex, jedoch nicht die Zeile\r\n # die den Regex erf\u00fcllt.\r\n sed -n \u2018\/regexp\/{n;p;}\u2019\r\n\r\n # Ausgabe eine umgebende Zeile vor und nach der Regex, mit Angabe\r\n # der Zeilennummer der Zeile, die den Regex erf\u00fcllt. (\u00e4hnlich \u201cgrep -A1 -B1\u2033)\r\n sed -n -e \u2018\/regexp\/{=;x;1!p;g;$!N;p;D;}\u2019 -e h\r\n\r\n # Suche nach AAA und BBB und CCC (in beliebiger Reihenfolge)\r\n sed \u2018\/AAA\/!d; \/BBB\/!d; \/CCC\/!d\u2019\r\n\r\n # Suche nach AAA und BBB und CCC (in vorgegebener Reihenfolge)\r\n sed \u2018\/AAA.*BBB.*CCC\/!d\u2019\r\n\r\n # Suche nach AAA oder BBB oder CCC (wie \u201cegrep\u201d)\r\n sed -e \u2018\/AAA\/b\u2019 -e \u2018\/BBB\/b\u2019 -e \u2018\/CCC\/b\u2019 -e d    # die meisten seds\r\n gsed \u2018\/AAA\\|BBB\\|CCC\/!d\u2019                        # GNU sed\r\n\r\n # Ausgabe des Absatzes falls dieser AAA enth\u00e4lt (Leerzeilen trennen Abs\u00e4tze)\r\n # F\u00fcr HHsed v1.5 muss \u2018G;\u2019 nach \u2018x;\u2019 eingef\u00fcgt werden.\r\n sed -e \u2018\/.\/{H;$!d;}\u2019 -e \u2018x;\/AAA\/!d;\u2019\r\n\r\n # Ausgabe des Absatzes falls dieser AAA, BBB und CCC enth\u00e4lt. (Reihenfolge egal)\r\n # F\u00fcr HHsed v1.5 muss \u2018G;\u2019 nach \u2018x;\u2019 eingef\u00fcgt werden.\r\n sed -e \u2018\/.\/{H;$!d;}\u2019 -e \u2018x;\/AAA\/!d;\/BBB\/!d;\/CCC\/!d\u2019\r\n\r\n # Ausgabe des Absatzes falls dieser AAA, BBB oder CCC enth\u00e4lt.\r\n # F\u00fcr HHsed v1.5 muss \u2018G;\u2019 nach \u2018x;\u2019 eingef\u00fcgt werden.\r\n sed -e \u2018\/.\/{H;$!d;}\u2019 -e \u2018x;\/AAA\/b\u2019 -e \u2018\/BBB\/b\u2019 -e \u2018\/CCC\/b\u2019 -e d\r\n gsed \u2018\/.\/{H;$!d;};x;\/AAA\\|BBB\\|CCC\/b;d\u2019         # nur GNU sed \r\n\r\n # Ausgabe der Zeilen die 65 Zeichen lang oder l\u00e4nger sind\r\n sed -n \u2018\/^.\\{65\\}\/p\u2019\r\n\r\n # Ausgabe der Zeilen die k\u00fcrzer als 65 Zeichen sind\r\n sed -n \u2018\/^.\\{65\\}\/!p\u2019        # M\u00f6glichkeit 1, entspricht obiger L\u00f6sung\r\n sed \u2018\/^.\\{65\\}\/d\u2019            # M\u00f6glichkeit 2, eifacherer Syntax\r\n\r\n # Ausgabe der Datei ab dem regul\u00e4ren Ausdruck bis zum Ende\r\n sed -n \u2018\/regexp\/,$p\u2019\r\n\r\n # Ausgabe eines Abschnittes der Datei, der durch Zeilennummern definiert ist\r\n # (hier: 8-12, inklusive)\r\n sed -n \u20188,12p\u2019               # M\u00f6glichkeit 1\r\n sed \u20188,12!d\u2019                 # M\u00f6glichkeit 2\r\n\r\n # Ausgabe von Zeile 52\r\n sed -n \u201852p\u2019                 # M\u00f6glichkeit 1\r\n sed \u201852!d\u2019                   # M\u00f6glichkeit 2\r\n sed \u201852q;d\u2019                  # M\u00f6glichkeit 3, effizient f\u00fcr gro\u00dfe Dateien\r\n\r\n # Ausgabe jeder 7. Zeile - beginnend bei Zeile 3\r\n gsed -n \u20183~7p\u2019               # nur GNU sed\r\n sed -n \u20183,${p;n;n;n;n;n;n;}\u2019 # andere seds\r\n\r\n # Ausgabe des Teils der Datei, der zwischen den regul\u00e4ren Ausdr\u00fccken ist (inklusive der Regexs)\r\n sed -n \u2018\/Iowa\/,\/Montana\/p\u2019             # ber\u00fccksichtigt die Gro\u00df\/Kleinschreibung\r\n\r\nL\u00d6SCHUNG BESTIMMTER ZEILEN:\r\n\r\n # Ausgabe der Datei, AUSSER dem Teil, der zwischen den regul\u00e4ren Ausdr\u00fccken ist\r\n sed \u2018\/Iowa\/,\/Montana\/d\u2019\r\n\r\n # L\u00f6schung von aufeinander folgenden, identischen Zeilen (wie \u201cuniq\u201d).\r\n # Die erste Zeile in einer Folge von Duplikaten wird ausgegeben, der Rest gel\u00f6scht.\r\n sed \u2018$!N; \/^\\(.*\\)\\n\\1$\/!P; D\u2019\r\n\r\n # L\u00f6sche identische, nicht aufeinander folgende Zeilen einer Datei.\r\n # Achten Sie darauf nicht die Buffer-gr\u00f6\u00dfe des \u201cHold-spaces\u201d zu \u00fcberschreiten oder benutzen Sie GNU sed.\r\n sed -n \u2018G; s\/\\n\/&amp;&amp;\/; \/^\\([ -~]*\\n\\).*\\n\\1\/d; s\/\\n\/\/; h; P\u2019\r\n\r\n # L\u00f6scht alle Zeilen au\u00dfer Duplikate (wie \u201cuniq -d\u201d).\r\n sed \u2018$!N; s\/^\\(.*\\)\\n\\1$\/\\1\/; t; D\u2019\r\n\r\n # L\u00f6scht die ersten 10 Zeilen einer Datei\r\n sed \u20181,10d\u2019\r\n\r\n # L\u00f6scht die letzte Zeile einer Datei\r\n sed \u2018$d\u2019\r\n\r\n # L\u00f6scht die zwei letzten Zeilen einer Datei\r\n sed \u2018N;$!P;$!D;$d\u2019\r\n\r\n # L\u00f6scht die 10 letzten Zeilen einer Datei\r\n sed -e :a -e \u2018$d;N;2,10ba\u2019 -e \u2018P;D\u2019   # M\u00f6glichkeit 1\r\n sed -n -e :a -e \u20181,10!{P;N;D;};N;ba\u2019  # M\u00f6glichkeit 2\r\n\r\n # L\u00f6sche jede 8. Zeile\r\n gsed \u20180~8d\u2019                           # nur GNU sed\r\n sed \u2018n;n;n;n;n;n;n;d;\u2019                # andere seds\r\n\r\n # L\u00f6sche Zeilen die die Regex erf\u00fcllen\r\n sed \u2018\/pattern\/d\u2019\r\n\r\n # L\u00f6sche ALLE Leerzeilen aus einer Datei (wie \u201cgrep \u2018.\u2019 \u201c)\r\n sed \u2018\/^$\/d\u2019                           # M\u00f6glichkeit 1\r\n sed \u2018\/.\/!d\u2019                           # M\u00f6glichkeit 2\r\n\r\n # L\u00f6sche alle AUFEINANDER FOLGENDEN Leerzeilen au\u00dfer der ersten;\r\n # au\u00dferdem, l\u00f6sche alle Leerzeilen am Anfang und am Ende der Datei\r\n # (Wie \u201ccat -s\u201d)\r\n sed \u2018\/.\/,\/^$\/!d\u2019          # M\u00f6glichkeit 1, l\u00e4sst 0 Leerzeilen am Anfang, 1 am Ende der Datei\r\n sed \u2018\/^$\/N;\/\\n$\/D\u2019        # M\u00f6glichkeit 2, l\u00e4sst 1 Leerzeilen am Anfang, 0 am Ende der Datei\r\n\r\n # L\u00f6sche alle AUFEINANDER FOLGENDEN Leerzeilen, au\u00dfer die ersten 2:\r\n sed \u2018\/^$\/N;\/\\n$\/N;\/\/D\u2019\r\n\r\n # L\u00f6sche alle Leerzeilen am Anfang einer Datei\r\n sed \u2018\/.\/,$!d\u2019\r\n\r\n # L\u00f6sche alle Leerzeilen am Ende einer Datei\r\n sed -e :a -e \u2018\/^\\n*$\/{$d;N;ba\u2019 -e \u2018}\u2019  # funktioniert bei allen seds\r\n sed -e :a -e \u2018\/^\\n*$\/N;\/\\n$\/ba\u2019        # ditto, au\u00dfer bei gsed 3.02.*\r\n\r\n # L\u00f6sche die letzte Zeile jedes Absatzes\r\n sed -n \u2018\/^$\/{p;h;};\/.\/{x;\/.\/p;}\u2019\r\n\r\nSPEZIELLE EINSATZGEBIETE:\r\n\r\n # Entferne nroff \u201coverstrikes\u201d (char, R\u00fcckschritt) aus Man-Seiten.\r\n # Die \u2018echo\u2019 Anweisung braucht eventuell die Option -e f\u00fcr die Unix System V shell oder bash.\r\n sed \u201cs\/.`echo \\\\\\b`\/\/g\u201d    # Doppelte Anf\u00fcrungszeichen werden in Unix-Umgebungen ben\u00f6tigt.\r\n sed \u2019s\/.^H\/\/g\u2019             # In bash\/tcsh, Ctrl-V und dann Ctrl-H dr\u00fccken\r\n sed \u2019s\/.\\x08\/\/g\u2019           # Hex-Angabe f\u00fcr sed 1.5, GNU sed, ssed\r\n\r\n # nur die Usenet\/E-Mail Kopfzeilen\r\n sed \u2018\/^$\/q\u2019                # L\u00f6scht alles nach der ersten Leerzeile\r\n\r\n # nur die Usenet\/E-Mail Nachrichtentext\r\n sed \u20181,\/^$\/d\u2019              # L\u00f6scht alles bis zur ersten Leerzeile\r\n\r\n # Die Betreffzeile einer E-Mail, aber ohne das \u201cSubject: \u201d am Zeilenanfang\r\n sed \u2018\/^Subject: *\/!d; s\/\/\/;q\u2019\r\n\r\n # Die Antwortadresse einer E-Mail\r\n sed \u2018\/^Reply-To:\/q; \/^From:\/h; \/.\/d;g;q\u2019\r\n\r\n # Extrahiert die E-Mail-Adresse aus der Antwortadresse des vorherigen Scripts\r\n sed \u2019s\/ *(.*)\/\/; s\/&gt;.*\/\/; s\/.*[:&lt; ] *\/\/'\r\n\r\n # Ein Gr\u00f6\u00dfer-Zeichen an jedem Zeilenanfang einf\u00fcgen (Nachricht zitieren)\r\n sed 's\/^\/&gt; \/\u2019\r\n\r\n # Gr\u00f6\u00dferzeichen am Zeilananfang l\u00f6schen (Macht vorheriges script r\u00fcckg\u00e4ngig)\r\n sed \u2019s\/^&gt; \/\/\u2019\r\n\r\n # Entferne die meisten HTML-Auszeichnungen (inklusive die \u00fcber mehrere Zeilen)\r\n sed -e :a -e \u2019s\/&lt; [^&gt;]*&gt;\/\/g;\/zipup.bat\r\n dir \/b *.txt | sed \u201cs\/^\\(.*\\)\\.TXT\/pkzip -mo \\1 \\1.TXT\/\u201d &gt;&gt;zipup.bat\r\n\r\nTYPISCHE BEFEHLSZEILEN: Sed nimmt eine oder mehrere Bearbeitungsbefehle\r\nentgegen und wendet diese, in der entsprechenden Reihenfolge auf jede\r\nZeile der Eingahe an. Nachdem alle Befehle auf die erste Zeile angewendet\r\nwurden, wird diese ausgegeben, und die zweite Zeile wird zur Bearbeitung\r\nentgegengenommen. Der Kreislauf wiederholt sich. Die vorhergehenden Beispiele\r\ngehen davon aus, dass die Eingaben von der Standarteingabe (STDIN) kommen (d.h. z.B.\r\ndie Tastatur, bzw. i.d.R. wird die Eingabe von einer Pipe kommen).\r\nEin oderer mehrere Dateinamen k\u00f6nnen an die Befehlszeile angeh\u00e4ngt werden,\r\nfallt die Eingabe nicht von STDIN kommt. Die Ausgaben werden an die\r\nStandarteingabe geschickt, d.h. i.d.R. auf dem Bildschirm ausgegeben.\r\nDaher gilt:\r\n\r\n cat filename | sed \u201810q\u2019        # Benutzt die \u201cPipe\u201d zur Eingabe\r\n sed \u201810q\u2019 filename              # gleicher Effekt, spart das unn\u00f6tige \u201ccat\u201d\r\n sed \u201810q\u2019 filename &gt; newfile    # Leitet die Ausgabe um ins Dateisystem\r\n\r\nWeitere Erkl\u00e4rungen des Sysntax, inklusive der M\u00f6glichkeit Befehle\r\nvon einer Datei statt von der Befehlszeile zu benutzen sind in \u201csed &amp;\r\nawk, 2nd Edition,\u201d von Dale Dougherty und Arnold Robbins (O\u2019Reilly,\r\n1997; http:\/\/www.ora.com), \u201cUNIX Text Processing,\u201d von Dale Dougherty\r\nund Tim O\u2019Reilly (Hayden Books, 1987) oder in den Anleitungen von Mike Arst\r\ndie als U-SEDIT2.ZIP au vielen Seiten zum Download bereit stehen zu finden.\r\n\r\nUm alle M\u00f6glichkeiten von sed zu nutzen, muss man Regul\u00e4re Ausdr\u00fccke\r\nverstehen. Hierf\u00fcr k\u00f6nnen folgende B\u00fccher herangezogen werden:\r\n\u201cMastering Regular Expressions\u201d von Jeffrey Friedl (O\u2019Reilly, 1997).\r\nDie Manual-Seiten (\u201dman\u201d) auf Unix-Systemen k\u00f6nnen auch hilfreich sein.\r\n(\u201dman sed\u201d, \u201cman regexp\u201d, oder der Abschnitt \u00fcber Regul\u00e4re Ausdr\u00fccke in\r\n\u201cman ed\u201d), aber einige dieser Seiten sind f\u00fcr ihren Schwierigkeitsgrad\r\nbekannt. Sie sind nicht als Einf\u00fchrung f\u00fcr neue Sed- oder Regex-Benutzer\r\ngeschrieben, sondern als Referenz f\u00fcr diejenigen, die diese Werkzeuge\r\nbereits beherrschen.\r\n\r\nBENUTZUNG VON HOCHKOMMAS:\r\nDie angef\u00fchrten Beispiele schlie\u00dfen die Anweisungen in einfache\r\nAnf\u00fchrungszeichen (\u2019\u2026\u2019) anstatt der doppelten (\u201d\u2026\u201d) ein, da\r\nsed typischerweise in einer Unix-Umgebung zur Anwendung kommt.\r\nEinfache Anf\u00fchrungszeichen hindern die Unix-Shell (Kommandozeile)\r\ndaran, das Dollarzeichen ($) und die umgekehrten Hochkommas (`\u2026`)\r\nauszuwerten, wie dies bei der verwendung von doppelten Anf\u00fchrungszeichen\r\n(\u201d\u2026\u201d) der Fall w\u00e4re.\r\nBenutzer der \u201ccsh\u201d Shell und deren Weiterentwicklungen m\u00fcssen ausserdem\r\ntrotz verwendung von einfachen Anf\u00fchrungszeichen alle Ausrufezeichen (!)\r\nmit einem R\u00fcckw\u00e4rtsstrich sch\u00fctzen (z.B. \u201c\\!\u201d) um die Beispiele korrekt\r\nausf\u00fchren zu k\u00f6nnen.\r\nDOS-Versionen von sed ben\u00f6tigen allesamt doppelte Anf\u00fchrungszeichen (\u201d\u2026\u201d)\r\num die Befehle herum.\r\n\r\nDIE BENUTZUNG VON \u2018\\t\u2019 IN SED-SCRIPTEN:\r\nDer Deutlichkeit halber haben wir in diesem Dokument die Zeichenfolge \u2018\\t\u2019\r\nbenutzt, um das Tabulatorzeichen (0\u00d709) darzustellen. Die meisen Versionen\r\nvon sed kennen jedoch diese Darstellung nicht.\r\nBei der Eingabe der Befehle muss \u2018\\t\u2019 durch dr\u00fccken der Tabulatortaste\r\neingegeben werden. \u2018\\t\u2019 wird von awk, perl, HHsed, sedmod, und GNU sed\r\nv3.02.80 in regul\u00e4ren Ausdr\u00fccken als Tabulator anerkannt.\r\n\r\nVERSIONEN VON SED:\r\nDie unterschiedlichen sed-versionen haben unterschied und man muss auch\r\nmit leichten Unterschieden im Syntax rechnen. Besonders die Benutzung von\r\nMarken (:name) oder Verzweigungen (b,t) innerhalb von Kommandos (nicht an\r\nderen Ende) werden von vielen Versionen nicht unterst\u00fctzt.\r\nWir haben eine Schreibweise gew\u00e4hlt, die sich mit den meisten Versionen\r\nvon sed benutzen l\u00e4sst, auch wenn die beliebten GNU-Versionen von sed eine\r\nelegantere Schreibweise erlauben w\u00fcrden.\r\nWem man einen ziemlich langen Befehl wie den folgenden sieht:\r\n\r\n   sed -e \u2018\/AAA\/b\u2019 -e \u2018\/BBB\/b\u2019 -e \u2018\/CCC\/b\u2019 -e d\r\n\r\nist es gut zu wissen, dass man diesen mit GNU-sed zu folgendem k\u00fcrzen kann:\r\n\r\n   sed \u2018\/AAA\/b;\/BBB\/b;\/CCC\/b;d\u2019      # oder sogar\r\n   sed \u2018\/AAA\\|BBB\\|CCC\/b;d\u2019\r\n\r\nAusserdem ist zu beachten, dass obwohl viele Versionen von sed einen Befehl\r\nwie \u201c\/one\/ s\/RE1\/RE2\/\u201d erlauben, einige \u201c\/one\/! s\/RE1\/RE2\/\u201d NICHT erlauben,\r\nwas ein Leerzeichen vor dem \u2019s\u2019 enth\u00e4lt. Bei der Eingabe der Befehle muss hier\r\ndas Leerzeichen weggelassen werden.\r\n\r\nGESCHWINDIGKEITSOPTIMIERUNG:\r\nFalls die ausf\u00fcrungsgeschwindigkeit wegen gro\u00dfen Dateien oder langsamen CPUs\r\nbzw. Festplatten erh\u00f6ht werden muss, k\u00f6nnen Ersetzungen beschleunigt werden,\r\nindem der gesuchte Ausdruck vor dem \u201cs\/\u2026\/\u2026\/\u201d genannt wird. Es gilt:\r\n\r\n   sed \u2019s\/foo\/bar\/g\u2019 filename         # Normales Suchen &amp; Ersetzen\r\n   sed \u2018\/foo\/ s\/foo\/bar\/g\u2019 filename   # Schnellere Version\r\n   sed \u2018\/foo\/ s\/\/bar\/g\u2019 filename      # sed Kurzschreibweise\r\n\r\nWenn bei der Auswahl oder L\u00f6schung von Zeilen nur Zeilen aus dem Dateianfang\r\nausgegeben werden sollen, verk\u00fcrzt bei gro\u00dfen Dateien ein \u201cquit\u201d Befehl (q)\r\ndie Bearbeitungszeit erheblich. Daher:\r\n\r\n   sed -n \u201845,50p\u2019 filename           # Ausgabe der Zeilen 45-50 einer Datei\r\n   sed -n \u201851q;45,50p\u2019 filename       # dito, aber biel schneller.\r\n\r\nFalls Sie weitere Scripte haben, und diese f\u00fcr dieses Dokument zur Verf\u00fcgung\r\nstellen m\u00f6chten, oder falls Sie Fehler in diesem Dokument gefunden haben,\r\nsenden Sie bitte eine E-Mail an den Verwalter dieser Sammlung. (Fehler in der\r\n\u00dcbersetzung melden Sie bitte dem \u00dcbersetzer.) Bitte geben Sie die\r\nProblemstellung, die benutzte sed-Version und das benutze Betriebssystem an.\r\nUm als \u201cEinzeiler\u201d zu gelten, darf die Befehlszeile h\u00f6chstens 65 Zeichen\r\nlang sein. Verschiedene Befehle in diesem Dokument wurden von den folgenden\r\nPersonen beigesteuert:\r\n\r\n Al Aab                   # Initiator der \u201cseders\u201d Mailing-Liste\r\n Edgar Allen              # Diverses\r\n Yiorgos Adamopoulos      # Diverses\r\n Dale Dougherty           # Author von \u201csed &amp; awk\u201d\r\n Carlos Duarte            # Author von \u201cdo it with sed\u201d\r\n Eric Pement              # Author dieses Dokuments\r\n Ken Pizzini              # Author von GNU sed v3.02\r\n S.G. Ravenhall           # Das gro\u00dfartige De-HTML-Script\r\n Greg Ubben               # Viele Beitrage und Hilfe\r\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014-<\/pre>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>original: http:\/\/stefan.waidele.info\/sed-einzeiler-deutsche-ubersetzung\/ stefan.waidele.info \u00a0 My Virtual Press &#8211; because the freedom of press applies only to those who have one. \u00a0 \u00a0 16\u00a0 01 2006 SED Einzeiler &#8211; Deutsche \u00dcbersetzung Bitte sendet Korrekturen an mich. Vielen Dank! Das Orinal ist unter http:\/\/www.pement.org\/sed\/sed1line.txt zu finden. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; N\u00fctzliche, einzeilige Scripts f\u00fcr SED (Unix Stream Editor) 29. Dez. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-10","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wp.oktay.com\/index.php?rest_route=\/wp\/v2\/pages\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.oktay.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wp.oktay.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wp.oktay.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.oktay.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10"}],"version-history":[{"count":0,"href":"https:\/\/wp.oktay.com\/index.php?rest_route=\/wp\/v2\/pages\/10\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.oktay.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}