VI - 5 Zeilen löschen eine Zeile überspringen -> EoF

schorsch312

schorsch312

Routinier
Hi,
Ich möchte mit vi aus einer Datein nur jede sechste Zeile haben.
Ich will also 5 Zeilen löschen un dann eine Zeile überspringen und das Ganze dann bis das Ende der Datei erreicht ist.
Gruß, Georg
 
Ich würde die Makro-Funktion von VI vorschlagen.

gruß Karru
 
Hi,
Gib mir mal bitte nen tipp, wie ich das schreibe.
Gruß, Georg
 
Sorry, da kann ich dir nicht weiterhelfen.
Ich weiß nur, dass es diese funktion gibt, aber wirklich benutzt hab ich sie noch nicht.

Karru
 
Hallo
Warum nicht gleich mit sed?
Code:
sed -ne '{n,n,n,n,n,p}' inputdatei >outputdatei && mv inputdatei outputdatei
Dass löscht 5 Zeilen und gibt jede 6. Zeile aus.

Du kannst natürlich auch innerhalb von vi mit einem Command arbeiten.

<ESC>:1,$ !sed -e 'sed -ne '{n,n,n,n,n,p}'
Desweiteren ist auch ein Makro möglich, was aber sicher langsamer wird.

Allerding reden wir hier von Vim nicht Vi!
Weiteres verät dir die ausgezeichnete Manpage mit Tutorial von vim.

Gruß Wolfgang
 
Danke!
War genau das was ich gesucht habe. :D
Gruß, Georg
 
Hallo

Das kann so garnicht funktioniert haben.
In meinem Posting hat sich ein Fipptehler eingeschlichen.
Fehler: Semikola ist Trennzeichen bei sed:

<ESC>:1,$ !sed -e 'sed -ne '{n,n,n,n,n,p}'

#besser
<ESC>:1,$ !sed -e 'sed -ne '{n;n;n;n;n;p}'
Beim anderen Sedvorschlag von mir dito.

Gruß Wolfgang
 
Richtig. War ein Tippfehlerm, aber trotzdem der richtige Hinweis. Es gibt ja dann auch noch die man-pages.
Gruß, Georg
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

Textdatei filtern und löschen mit grep /sed

Dateien ab einer bestimmten Zeile löschen

Text mit mehreren Zeilen und Sonderzeichen ersetzten

.cfg Datei Analysieren und Zeilen Stellenweise abändern

Zurück
Oben