salir borrar archivo regex unix text command vi

regex - borrar - vi ir al final del archivo



¿Cómo elimino los primeros 5 caracteres de cada línea en un archivo de texto usando vi? (5)

¿Cómo elimino los primeros 5 caracteres de cada línea en un archivo de texto?
Tengo un archivo como este:

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

Me gustaría eliminar el número y el espacio al principio de cada línea en mi archivo txt.


Como todas las líneas están alineadas, no necesita una sustitución para resolver este problema. Solo lleva el cursor a la posición superior izquierda (gg), luego: CTRL + vGwlx


Dado que el texto parece que es información en columnas, awk generalmente sería útil. Usaría V para seleccionar las líneas, luego presioné :! y usa awk:

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

Para imprimir la segunda columna de los datos. Te ahorra de contar espacios por completo.


Tratar

:s/^.....//

Probablemente no necesite el "^" (inicio de línea), y habría 5 accesos directos para los 5 caracteres, pero simple es bueno :)


Use la expresión regular ^..... para hacer coincidir los primeros 5 caracteres de cada línea. Úsalo en una sustitución global:

:%s/^.....//


:%s/^./{0,5/}// debería hacer el truco. También maneja casos donde hay menos de 5 caracteres.