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)