it-swarm.com.de

Wie entferne ich die ersten 5 Zeichen in jeder Zeile einer Textdatei mit vi?

Wie entferne ich die ersten 5 Zeichen in jeder Zeile einer Textdatei?
Ich habe eine Datei wie diese: 

   4 Alabama
   4 Alaska
   4 Arizona
   4 Arkansas
   4 California
  54 Can
   8 Carolina
   4 Colorado
   4 Connecticut
   8 Dakota
   4 Delaware
  97 Do
   4 Florida
   4 Hampshire
  47 Have
   4 Hawaii

Ich möchte die Nummer und den Platz am Anfang jeder Zeile in meiner Textdatei entfernen. 

26
Emmy

:%s/^.\{0,5\}// sollte den Trick tun. Es behandelt auch Fälle, in denen es weniger als 5 Zeichen gibt.

66
lared

Verwenden Sie den regulären Ausdruck ^....., um die ersten 5 Zeichen jeder Zeile zu finden. Verwenden Sie es in einer globalen Vertretung:

:%s/^.....//
10
Barmar

Da der Text aussieht wie seine säulenförmigen Daten, ist awk normalerweise hilfreich. Ich würde V verwenden, um die Zeilen auszuwählen, dann :! drücken und awk verwenden:

:'<,'>! awk '{ print $2 }'

um die zweite Spalte der Daten auszudrucken. Spart Sie, Leerzeichen zu zählen.

3
easoncxz

Versuchen 

:s/^.....//

Sie brauchen wahrscheinlich nicht das "^" (Zeilenanfang), und es gibt Abkürzungen für die 5 Zeichen - aber einfach ist gut :)

2
racraman

Da alle Zeilen in einer Reihe angeordnet sind, benötigen Sie keine Ersetzung, um dieses Problem zu lösen. Setzen Sie den Cursor einfach auf die Position oben links (gg) und dann: STRG + vGwlx

2
Mark

:%s/^.\{0,5\}//g für global, da wir die ersten 5 Spalten jeder Zeile für jede Zeile entfernen möchten.

0
user3242313