Tengo un archivo CSV grande que necesito para eliminar la primera columna de datos. No puedo abrirlo en Excel porque Excel convierte algunos de los valores en las columnas a números científicos.
Estoy usando Notepad ++ , y estoy tratando de encadenar la primera columna del archivo EXE,
1,Value1,value2,value3,value4,value5
3445,Value1,value2,value3,value4,value5
12345,Value1,value2,value3,value4,value5
1234,Value1,value2,value3,value4,value5
11,Value1,value2,value3,value4,value5
parecer
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
fuente
^[^,]+,
y reemplazar con vacío?Presione Ctrl+ Hy realice el siguiente reemplazo:
Ahora presione Alt+ Apara reemplazar todas las ocurrencias.
Cómo funciona
La expresión regular
.*?,(.*)
coincide con una línea completa:.*?,
coincide con todo antes de la primera coma, incluida la coma misma..*
significa cualquier número de ocurrencias de cualquier carácter, y el signo de interrogación hace que el cuantificador sea vago , es decir, coincide con la menor cantidad de caracteres posible.(.*)
coincide con todo después de la primera coma.El encerrarlo
.*
entre paréntesis lo convierte en un subpatrón, por lo que se puede acceder al mástil en el campo de reemplazo.\1
representa la primera subcoincidencia (coincidencia para(.*)
).Como resultado, Notepad ++ reemplaza la línea por todo lo que sigue a la primera coma.
fuente
^[^,]+,
globalmente reemplazado por una cadena vacía no funcionará en Notepad ++. (+1)En Windows, puede hacerlo de la siguiente manera.
Supuse que solo tienes 6 columnas. Si tiene muchas más columnas, intente experimentar con * en el campo de tokens. La idea se toma de Windows para el comando
fuente
for /F "tokens=1* delims=," %i in (Input.csv) do @echo %j >> output.csv
Suponiendo que tiene un sistema Linux o algún entorno de estilo Unix (me gusta Gow , o puede desglosar las utilidades de Unixutils ), creo que ejecutar el archivo
cut -d , -f2-6
debería ser el truco, debería, si recuerdo correctamente, hará el truco:-d
establece el deliminador, ef2-6
imprime el segundo al sexto carácter.cat input.csv | cut -d , -f2-6 > output.csv
haría el truco tomando el archivo de entrada y expulsando un archivo de salida. No está usando el bloc de notas, pero es rápido y realmente simple.fuente
Debería poder cargar el CSV en Excel y hacer que trate los números como texto (evitando que se convierta en números científicos).
fuente
Notepad ++ tiene una edición de columna incorporada y un comando Line Up by (,) (complemento TextFX) que ofrece una solución gráfica de apuntar y hacer clic que probablemente sea la primera vez que está bien. Esto evita tener que usar expresiones regulares o programación de shell, que normalmente requieren alguna depuración hasta que hacen exactamente lo que quieres y nada más.
Punto de partida : archivo CSV con columnas desalineadas, por lo que no es fácil editar por columna ...
Procedimiento:
Seleccione las filas de interés, tal vez todo el archivo.
Use el comando de menú TextFX> TextFX Editar> Alinear varias líneas por coma (,) Esto alinea todas las filas por columna y facilita la edición de columnas.
Ingrese al modo de columna en la columna después de la primera coma (,) Para una pequeña cantidad de filas, use los comandos del teclado: Alt + Mayús + Flecha abajo.
Si necesita trabajar en muchas filas (archivo grande), use Alt + mouse y haga clic en la columna deseada de la primera línea, luego muévase a la última línea del archivo y Alt + Shift + haga clic en la misma posición de columna. Esto activa el modo de columna en el archivo ENTERO; debería ver una línea vertical detrás de todas las comas.
Eliminar en modo columna elimina una columna completa de caracteres. Por lo tanto, puede eliminar todo antes de la primera coma en todas las filas de una vez para obtener:
¡Hecho!
Observa esta solución en comparación con las otras sugeridas hasta ahora:
La edición en modo de columna es bastante poderosa y, cuando se combina con las opciones del complemento TextFX, se aplica a una variedad de situaciones de manera rápida y precisa.
Por ejemplo, si decidió eliminar la segunda columna, o la enésima columna rápidamente, este enfoque funciona casi sin modificaciones.
Las expresiones regulares, los scripts de shell, por otro lado, lograrán el objetivo, sí, pero en problemas complicados pasará más tiempo "depurando" su sintaxis.
La versátil funcionalidad incorporada de Notepad ++ es una de sus principales fortalezas: obtienes bastante potencia sin tener que recurrir a la "programación".
fuente
Si está familiarizado con el complemento de consola de Python para Notepad ++, puedo aconsejarle otro método. Debe agregar su texto en el documento Notepad ++ y ejecutar el siguiente script en la consola:
Este script agregó el texto del resultado a su documento actual de Notepad ++.
fuente
Ejecutar
vim
(en el modo de comando, si no, presione Escape).Escriba el siguiente comando para asignar la acción de eliminar la primera columna a la
q
clave:Lo que significa:
0
- ir al comienzo de la líneadf,
- d elegir todo hasta , personaje (incluyendo coma),j
- baja una línea0
- ir al comienzo de la líneaLuego aplique esta acción a todas las líneas:
Lo que significa, ejecuta la acción que se asigna a la tecla
q
desde la línea desde el principio (0) hasta el final ($).fuente
:%s/^[^,]\+,//g
?