home » linux » git | sed | vi

Stream EDitor - Kurzreferenz

Beispiele:

sed -n '/Muster/p' <File> Ausgabe aller Zeilen, die "Muster" enthalten
sed -n '/Muster/,/^$/p' <File> Zeilenausgabe ab "Muster" bis zur nächsten Leerzeile
sed '/Muster/d' <File> Löschen aller Zeilen, die "Muster" enthalten
sed 's/Muster/Ersatz/' <File> Löschen oder Ersetzen von Mustern
sed -i 's/Muster/Ersatz/' <File> <File> wird überschrieben
sed 's/abc/def/;s/ghi//;s/jkl//' <File> mehrere Kommandos

Kommandos:

s/old.*/new/ löscht alle Zeichen je Zeile ab "old" und fügt dafür "new" ein
s/.*old/new/ löscht alle Zeichen je Zeile bis "old" und fügt dafür "new" ein
s/e// löscht das erste "e" jeder Zeile
s/e//g löscht alle "e" jeder Zeile
s/ */ /g ersetzt alle mehrfachen Leerzeichen durch ein einzelnes
s/^[[:space:]]*// löscht alle Leerzeichen und Tabulatoren zu Beginn einer Zeile
10,$s/... ab 10. Zeile bis Fileende
/old/d löscht alle Zeilen die "old" enthalten
/old/!d löscht alle Zeilen die kein "old" enthalten
/^old/... alle Zeilen mit "old" am Anfang
/old$/... alle Zeilen mit "old" am Ende
s/ab.*xy/abxy/ löscht alle Zeichen zwischen "ab" und "xy"
s/ab *xy/abxy/ löscht alle Leerzeichen zwischen "ab" und "xy"
s/ab.*xy// löscht alle Zeichen zwischen "ab" und "xy" einschließlich "ab" und "xy"
s/.*,// löscht alle Zeichen bis zum Komma einschließlich Komma
s/.*\.// löscht alle Zeichen bis zum Punkt einschließlich Punkt (Schrägstrich vor Punkt, da Sonderzeichen)
s/^[0123456789]*// löscht alle Zahlen
s/^[^0-9]*// löscht alle Zeichen außer Zahlen
s/.*/&<br>/ fügt an alle Zeilen HTML-Zeilenumbrüche an ("&" steht für den String der mit "/.*/" separiert wird)
s/}/&\n/g fügt Zeilenumbrüche nach jeder schließenden geschweiften Klammer "}" ein
/start/,/stop/ alle Zeilen zwischen "start" und "stop"
g/^\.EQ/+,/^\.EN/-p (?) alle Zeilen zwischen den Zeilen, die mit ".EQ" und ".EN" beginnen
s/\(.*to\) \(the.*\)/\2 \1/ Vertauschen von Strings beginnend mit "to" und "the" (".*to" =1 und "the.*" =2)

Weiteres:

tr -d '\n' alle Zeilenumbrüche entfernen (ist mit sed deutlich komplizierter)
tr '\n' ' ' alle Zeilenumbrüche durch Leerzeichen ersetzen
grep -v ^$ löscht alle Leerzeilen

zurück