una ultimos texto primeros partir numeros izquierda funcion extraer eliminar derecha contar combinar celda caracteres caracter vim awk sed

vim - ultimos - vi mantener solo los primeros 10 caracteres de una columna



extraer numeros de una celda en excel (3)

¿Cómo hago esto en vi?

awk -F"," awk ''{print substr($1,1,10)}''

Solo quiero mantener los primeros 10 caracteres de mi columna de fecha (ejemplo 2014-01-01) y no incluir la marca de tiempo.

Intenté hacerlo en awk pero obtuve este error:

sed: RE error: illegal byte sequence

Creo que es un error de configuración de perfil bash.

Esto es lo que tengo en mi bash_profile:

#export LANG=en_US.UTF-8 #export LOCALE=UTF-8 export LC_CTYPE=C export LANG=C


Para editar bloques de texto hay un -- VISUAL BLOCK -- modo accesible a través de CTRL-V (en Windows usualmente CTRL-Q ). Luego puede presionar d para eliminar su selección.

O con un simple comando sustituto

:%s//%>10c.*//

  • /%>10c - coincidencias después de la décima columna
  • . - coincide con cualquier carácter individual pero no con un final de línea
  • * - coincide con 0 o más del átomo anterior, tantos como sea posible

O puedes usar el rango

:1,3s//%>10c.*//

Esto sustituiría las primeras tres líneas.


en vim, do:

:%norm! 11|D

esto afectará todas las líneas en tu búfer.

Si lo desea :s podría hacer este trabajo.


:%s/./{,10}/zs.*//

  • :%s/ : aplicar la sustitución a todas las líneas
  • ./{,10} : hacer coincidir algo hasta 10 veces (codicioso)
  • /zs : indica el comienzo del partido
  • .* : coincide con el resto de la línea
  • / : fin de la primera parte de :s
  • / : fin de la segunda parte de s (ya que no hay nada entre los dos / , reemplace por nada, es decir, elimine)