Creacion de un archivo crv en Linux
Creacion de un archivo crv en Linux
Hola a todos necesito una ayudita, con la creacion de un archivo crv.
Tengo un archivo con el siguiente formato:
;CODIGO;REFERENCIA;IMPRESORA;P�G. IMAX�;; P.V.D.
;;;;;;
;;;;;;
;Cartuchos ¿½ para impresoras BROTHER� ;;;;;
;1004;TN04 BK;HL2700/ MFC9420 Negro;10.000;;46,3
;10041;TN04 C;HL2700/ MFC9420 Cyan;6.600;;46,3
;10042;TN04 M;HL2700/ MFC9420 Magenta;6.600;;46,3
;10043;TN04 Y;HL2700/ MFC9420 Amarillo;6.600;;46,3
;1252;CE252A;CP3520/ CP3525/ CM3530 Amarillo;7.000;;52,35
;1253;CE253A;CP3520/ CP3525/ CM3530 Magenta;7.000;;52,35
NEW 2-2012;100310;CE310A N�126A;Pro 100/ CP1020/ CP1025/ CP1025NW Negro;1.000;;21,56
Para preparar el fichero lo primero que hago es eliminar los espacios con sed '/^$/d' toner .
Luego elimino las lineas que contengan 3 ";" seguidos sed '/;;;/d' .
El siguiente paso buscamos 2 punto y coma ";;" y se sustituye por uno solo ";" sed 's/;;/;/g'
Ahora se cambiaran las comas por puntos. sed 's/,/./g'
Y por ultimo elimino el ; inicial de cada linea sed 's/^;//'
se quedaria algo asi:
13050;MLD 3050B;ML3050/ 3051N/ 3051ND Negro;8.000;42.79
11042;MLTD 1042S / ML 1660;ML1660/ 1661/ 1665/ 1666/ 1670/ 1861/ 1865/ 1865W/ SCX3200/ 3205 Negro;1.500;31.61
NEW 12-2011;11910;MLTD 1052L / ML1910;ML1910/ 1915/ 2525/ 2580/ SCX4600/ 4623/ 4623FN/ SF650 Negro;2.500;25.19
11640;MLTD 1082S / ML 1640;ML1640/ 1641/ 1642/ 1645 /2240/ 2241 Negro;1.500;23.57
Ahora lo que no se como hacerlo seria eliminar lo que se encuentre entre NEW y el primer ; por ejemplo
NEW 12-2011; que tendria que eliminarlo de las lineas que lo contengan.
La idea seria buscar la cadena que empiece por NEW hasta el primer ; y eliminarlo.
Gracias de antemano y saludos a todos.
Tengo un archivo con el siguiente formato:
;CODIGO;REFERENCIA;IMPRESORA;P�G. IMAX�;; P.V.D.
;;;;;;
;;;;;;
;Cartuchos ¿½ para impresoras BROTHER� ;;;;;
;1004;TN04 BK;HL2700/ MFC9420 Negro;10.000;;46,3
;10041;TN04 C;HL2700/ MFC9420 Cyan;6.600;;46,3
;10042;TN04 M;HL2700/ MFC9420 Magenta;6.600;;46,3
;10043;TN04 Y;HL2700/ MFC9420 Amarillo;6.600;;46,3
;1252;CE252A;CP3520/ CP3525/ CM3530 Amarillo;7.000;;52,35
;1253;CE253A;CP3520/ CP3525/ CM3530 Magenta;7.000;;52,35
NEW 2-2012;100310;CE310A N�126A;Pro 100/ CP1020/ CP1025/ CP1025NW Negro;1.000;;21,56
Para preparar el fichero lo primero que hago es eliminar los espacios con sed '/^$/d' toner .
Luego elimino las lineas que contengan 3 ";" seguidos sed '/;;;/d' .
El siguiente paso buscamos 2 punto y coma ";;" y se sustituye por uno solo ";" sed 's/;;/;/g'
Ahora se cambiaran las comas por puntos. sed 's/,/./g'
Y por ultimo elimino el ; inicial de cada linea sed 's/^;//'
se quedaria algo asi:
13050;MLD 3050B;ML3050/ 3051N/ 3051ND Negro;8.000;42.79
11042;MLTD 1042S / ML 1660;ML1660/ 1661/ 1665/ 1666/ 1670/ 1861/ 1865/ 1865W/ SCX3200/ 3205 Negro;1.500;31.61
NEW 12-2011;11910;MLTD 1052L / ML1910;ML1910/ 1915/ 2525/ 2580/ SCX4600/ 4623/ 4623FN/ SF650 Negro;2.500;25.19
11640;MLTD 1082S / ML 1640;ML1640/ 1641/ 1642/ 1645 /2240/ 2241 Negro;1.500;23.57
Ahora lo que no se como hacerlo seria eliminar lo que se encuentre entre NEW y el primer ; por ejemplo
NEW 12-2011; que tendria que eliminarlo de las lineas que lo contengan.
La idea seria buscar la cadena que empiece por NEW hasta el primer ; y eliminarlo.
Gracias de antemano y saludos a todos.
Última edición por soinel el Sab Abr 07, 2012 12:16 am, editado 1 vez en total.
- mcun
- Administrador
- Mensajes: 3888
- Registrado: Lun Abr 19, 2010 12:30 am
- Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
- Contactar:
Re: Hola a todos necesito una ayudita, con la creacion de un archivo crv
Hola soinel por favor edita el titulo y agrega información útil como por ejemplo el lenguage en el que tratas de implementar lo que sea que quieras implementar XDD
Para ser mas claro Hola a todos necesito una ayudita, es absolutamente irrelevante y no aporta nada a la descripción del problema, ademas de infringir las normas del foro.
Un titulo descriptivo seria algo como:
crear un archivo crv en python o xxx error al crear un archivo crv en Java
gracias
Para ser mas claro Hola a todos necesito una ayudita, es absolutamente irrelevante y no aporta nada a la descripción del problema, ademas de infringir las normas del foro.
Un titulo descriptivo seria algo como:
crear un archivo crv en python o xxx error al crear un archivo crv en Java
gracias
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.
Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Re: Hola a todos necesito una ayudita, con la creacion de un archivo crv
NEW siempre va al comienzo de la linea?
No tengo mucha experiencia con sed, pero si NEW siempre esta al comienzo, una mezcla con cut te puede ayudar.
salu2
No tengo mucha experiencia con sed, pero si NEW siempre esta al comienzo, una mezcla con cut te puede ayudar.
Código: Seleccionar todo
borrar=`grep NEW archivo| cut -d\; -f1`;sed "s/$borrar;//" archivo
Re: Hola a todos necesito una ayudita, con la creacion de un archivo crv
No necesariamente, en este caso si pero podría ir en otro campo por eso seria útil buscar la cadena que empiece por NEW hasta el siguiente ;
Saludos y gracias por tu rápida respuesta.
Editado -- Sab Abr 07, 2012 6:37 am --
No ha funcionado lo que me envias t4rr1t0
tal cual no me funciona.
para almacenar en variable borrar lo hago sin las comillas si no no funciona
la siguiente parte es la que no funciona y no entiendo el por que¿? he provado con $borrar , '$borrar' , "'$borrar'"
No entiendo ¿que error puede ser?
saludos
Saludos y gracias por tu rápida respuesta.
Editado -- Sab Abr 07, 2012 6:37 am --
No ha funcionado lo que me envias t4rr1t0
Código: Seleccionar todo
borrar=`grep NEW archivo| cut -d\; -f1`;sed "s/$borrar;//" archivo
para almacenar en variable borrar lo hago sin las comillas si no no funciona
Código: Seleccionar todo
borrar= grep NEW toner | cut -d';' -f1
Código: Seleccionar todo
sed 's/$borrar//' toner > toner3
No entiendo ¿que error puede ser?
saludos
Re: Creacion de un archivo crv en Linux
Copié los datos que pusiste para generar el archivo toner, corrí los comando que te indique con los nombres de archivos que tu indicas y no me dio ningun error.
esta es mi salida (toner3)
No entiendo que te esta provocando el error. Estas usando bash u otra shell?
Por cierto, si quieres que la variable se expanda, entonces no debes usar comillas simples.
Salu2
Código: Seleccionar todo
borrar=`grep NEW toner| cut -d\; -f1`;sed "s/$borrar;//" toner > toner3
Código: Seleccionar todo
cat toner3
;CODIGO;REFERENCIA;IMPRESORA;P�G. IMAX�;; P.V.D.
;;;;;;
;;;;;;
;Cartuchos ¿½ para impresoras BROTHER� ;;;;;
;1004;TN04 BK;HL2700/ MFC9420 Negro;10.000;;46,3
;10041;TN04 C;HL2700/ MFC9420 Cyan;6.600;;46,3
;10042;TN04 M;HL2700/ MFC9420 Magenta;6.600;;46,3
;10043;TN04 Y;HL2700/ MFC9420 Amarillo;6.600;;46,3
;1252;CE252A;CP3520/ CP3525/ CM3530 Amarillo;7.000;;52,35
;1253;CE253A;CP3520/ CP3525/ CM3530 Magenta;7.000;;52,35
100310;CE310A N�126A;Pro 100/ CP1020/ CP1025/ CP1025NW
Negro;1.000;;21,56
Por cierto, si quieres que la variable se expanda, entonces no debes usar comillas simples.
Salu2
Re: Creacion de un archivo crv en Linux
No lo entiendo yo utilizo una retro de debían que es solo consola no tiene parte gráfica.
Este codigo que me envías no funciona
Tengo otros script hechos y siempre me ha tocado modificarlos por que algunas espresiones no funcionaba por ejemplo cut -d\; -f1 no funciona seria cut -d';' -f1
Que versión de Linux me recomiendas que sea sin consola gráfica que funcione bien y pese poco.??
Tengo virtualizado un ubuntu server 10 lo probare y si me funciona me cambio.
Saludos
Este codigo que me envías no funciona
Código: Seleccionar todo
borrar=`grep NEW toner| cut -d\; -f1`;sed "s/$borrar;//" toner > toner3
Que versión de Linux me recomiendas que sea sin consola gráfica que funcione bien y pese poco.??
Tengo virtualizado un ubuntu server 10 lo probare y si me funciona me cambio.
Saludos
- akodo
- Moderador
- Mensajes: 1457
- Registrado: Mié Nov 28, 2007 8:00 am
- Ubicación: En la X del explorer (pulse para llamar)
Re: Creacion de un archivo crv en Linux
Prueba a ver si funciona el siguiente código (ajústalo antes que no sé si funcionará)
Básicamente, sustituyes el NEW, cualquier cosa que no sea ";" y finalmente el ";" por un carácter blanco.
Código: Seleccionar todo
sed 's/NEW[^;]*;//'
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Re: Creacion de un archivo crv en Linux
t4rr1t0 esta es la distri de linux que tengo.
Linux XXXX 2.6.26-2-amd64 #1 SMP Tue Jan 25 05:59:43 UTC 2011 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Apr 7 11:39:31 2012 from XXXX
Si pongo el script que me das mira lo que me da:
borrar=`grep NEW toner| cut -d\; -f1`;sed "s/$borrar;//" toner > toner3
sed: -e expresión #1, carácter 17: unterminated `s' command
Editado -- Sab Abr 07, 2012 6:10 pm --
Hola akodo si funciona me puedes explicar.
NEW[^;]*;
eliminamos todo lo que empiece por NEW, [^;] empiece por ; continue por lo que sea * y termine en ;
La parte [^;] que esta detras de NEW no entiendo el cometido.
saludos
Linux XXXX 2.6.26-2-amd64 #1 SMP Tue Jan 25 05:59:43 UTC 2011 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Apr 7 11:39:31 2012 from XXXX
Si pongo el script que me das mira lo que me da:
borrar=`grep NEW toner| cut -d\; -f1`;sed "s/$borrar;//" toner > toner3
sed: -e expresión #1, carácter 17: unterminated `s' command
Editado -- Sab Abr 07, 2012 6:10 pm --
Hola akodo si funciona me puedes explicar.
Código: Seleccionar todo
sed 's/NEW[^;]*;//'
eliminamos todo lo que empiece por NEW, [^;] empiece por ; continue por lo que sea * y termine en ;
La parte [^;] que esta detras de NEW no entiendo el cometido.
saludos
Re: Creacion de un archivo crv en Linux
T4rrit0 -o algo así- te dio una solución correcta.
Probablemente estás usando Dash. Prueba ejecutar Bash antes de iniciar la secuencia de comandos aquí expuesta.
En cuanto a sed, los parámetros van entre comillas simples: sed 's/A/B/'
Probablemente estás usando Dash. Prueba ejecutar Bash antes de iniciar la secuencia de comandos aquí expuesta.
En cuanto a sed, los parámetros van entre comillas simples: sed 's/A/B/'
- akodo
- Moderador
- Mensajes: 1457
- Registrado: Mié Nov 28, 2007 8:00 am
- Ubicación: En la X del explorer (pulse para llamar)
Re: Creacion de un archivo crv en Linux
El "[]" es para especificar un conjunto de caracteres. Añadiendo "*" al final lo que indicas es que ese conjunto de caracteres puede aparece 0 o más veces. Por ejemplo: si quieres que se haga un match con "Abc", "abc", "Bbc" y "bbc" lo puedes indicar como "/[AaBb]bc/" (añado "/" para indicar que es una expresión regular)soinel escribió:NEW[^;]*;
eliminamos todo lo que empiece por NEW, [^;] empiece por ; continue por lo que sea * y termine en ;
La parte [^;] que esta detras de NEW no entiendo el cometido.
Adicionalmente, si el primer caracter del conjunto es "^" lo que indicas es el conjunto complementario de los caracteres que haya entre corchetes (o sea, todos los caracteres que no aparezcan en los corchetes. "[^;]" representa todos los caracteres que no sean ";"
Espero haberme explicado bien.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
-
- Similar Topics
- Respuestas
- Vistas
- Último mensaje
-
-
Averiguar fecha de creación y eliminación de archivo a través de su número de inodo
por quierolinux » Vie Mar 22, 2013 2:45 am » en Sistema - 4 Respuestas
- 1240 Vistas
-
Último mensaje por quierolinux
Jue Mar 28, 2013 5:22 am
-
-
- 2 Respuestas
- 1703 Vistas
-
Último mensaje por Hawkingsagan
Mar Feb 16, 2010 1:22 am
-
- 1 Respuestas
- 304 Vistas
-
Último mensaje por doc
Mié Mar 06, 2019 9:57 pm
-
- 4 Respuestas
- 565 Vistas
-
Último mensaje por Hawkingsagan
Mar Nov 14, 2017 9:49 pm
-
-
donde se encuentra el archivo config.h? en arch linux dwm?
por crunch » Lun Ago 21, 2017 1:13 am » en Otros escritorios y entornos - 0 Respuestas
- 521 Vistas
-
Último mensaje por crunch
Lun Ago 21, 2017 1:13 am
-