vi behalte nur die ersten 10 Zeichen einer Spalte

7

Wie mache ich das in vi?

%Vor%

Ich möchte nur die ersten 10 Zeichen meiner Datumsspalte (Beispiel 2014-01-01) behalten und den Zeitstempel nicht enthalten.

Ich habe versucht, es in Awk zu tun, aber ich habe diesen Fehler:

%Vor%

Ich glaube, es ist ein bash_profile Einstellungsfehler.

Das habe ich in meinem bash_profile:

%Vor%     
jxn 17.11.2015, 08:33
quelle

3 Antworten

9

in vim, tue:

%Vor%

Dies betrifft alle Zeilen in Ihrem Puffer.

Wenn Sie möchten, kann auch :s diese Aufgabe übernehmen.

    
Kent 17.11.2015 08:38
quelle
5
%Vor%
  • :%s/ : Übernehmen Sie die Ersetzung für alle Zeilen
  • .\{,10} : finde bis zu 10-mal alles (gierig)
  • \zs : gibt den Beginn der Übereinstimmung an
  • .* : Entspricht dem Rest der Zeile
  • / : Ende des ersten Teils von :s
  • / : Ende des zweiten Teils von s (da zwischen den beiden / nichts ist, ersetze nichts, dh lösche)
Marth 17.11.2015 08:42
quelle
4

Zum Bearbeiten von Textblöcken gibt es einen -- VISUAL BLOCK -- -Modus, auf den über CTRL-V (unter Windows normalerweise CTRL-Q ) zugegriffen werden kann. Dann können Sie d drücken, um Ihre Auswahl zu löschen.

Oder mit einem einfachen Ersatzbefehl

%Vor%
  • \%>10c - entspricht der zehnten Spalte
  • . - passt auf ein einzelnes Zeichen, aber nicht auf ein Zeilenende
  • * - entspricht 0 oder mehr des vorhergehenden Atoms, so viele wie möglich

Oder Sie können den Bereich verwenden

%Vor%

Dies würde die ersten drei Zeilen ersetzen.

    
ryuichiro 17.11.2015 09:32
quelle

Tags und Links