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 des
(ya que no hay nada entre los dos/
, reemplace por nada, es decir, elimine)