Título: Quitar 1 expresion con SED Publicado por: ^Tifa^ en 13 Diciembre 2009, 23:01 pm Hola. :D
Estoy haciendo una migracion manual de un dumpeo de un esquema de MySQL hacia Oracle. (Se que puedo utilizar ETL gratuitos o Oracle Workbench) pero no es el caso, no hay servidor grafico y no puedo instalar muchas cosas raras en el PC que es. Bien asi que la migracion que en este caso son sencillas (tablas nada de procedimientos, ni triggers ni funciones) he creado el siguiente script en bash que me serviria con una unica falla: Código
Mi falla es en la variable $extra="`" como bien saben la comilla inclinada (`) sirve para ejecucion, y no encuentro forma de quitarla con SED en el archivo generado por mysqldump: Código
Lo que la variable $extra en este caso me esta haciendo es eliminandome todas las lineas donde encuentre la dichosa comilla `valor` la linea completa :-\ y yo solo quiero que por ejemplo a: CREATE TABLE `copia` me lo deje como CREATE TABLE copia lo unico que quiero eliminar es la comillita simple inclinada no el valor dentro de la misma. Alguien sabe como puedo hacer eso con el comando SED en Linux? Título: Re: Quitar 1 expresion con SED Publicado por: leogtz en 13 Diciembre 2009, 23:46 pm A lo mejor cometo una burrada, pero ^TiFa^, ya probaste con sed ' ....', es decir, usar ' ' en vez de dobles comillas.
Título: Re: Quitar 1 expresion con SED Publicado por: ^Tifa^ en 14 Diciembre 2009, 00:13 am No creo que cometas una burrada.
Si lamentablemente si habia probrado con comillas simples en vez de dobles en la variable $extra pero si utilizo comillas simples asi: extra='`' Resulta que SED se lleva la linea completa donde vea ` Quedando mi archivo copia (El que debo cargar en Oracle asi) Citar -- Host: localhost Database: primaria -- ------------------------------------------------------ -- Server version 5.4.3-beta -- -- ) -- -- -- -- ) Donde sea que encuentre un Create table `copia` me elimina la linea completa.... y ando dandole vueltas haber como decirle que no sea la linea completa, sino sencillamente la comilla inclinada ` para que quede normal CREATE TABLE copia en vez de CREATE TABLE `copia` Título: Re: Quitar 1 expresion con SED Publicado por: ^Tifa^ en 14 Diciembre 2009, 00:28 am Ya pude sacar algo y resolverlo... no es lo mas optimo pero funciona.
Todo era hacer: Citar extra='`'; sed "s/$extra/ /" $new > tmp && mv tmp $new sed "s/$extra/ /" $new > tmp && mv tmp $new AHora si ya me carga el script en Oracle :P |