Foros del Web » Administración de Sistemas » Unix / Linux »

bash comando sed reemplazar caracter

Estas en el tema de bash comando sed reemplazar caracter en el foro de Unix / Linux en Foros del Web. Que tal amigos: Resulta que estoy realizando un script bash donde quiero agregarle valor a una variable. nuevo1.php Código PHP: $config [ 'base_url' ] =  ' ' ...
  #1 (permalink)  
Antiguo 27/07/2012, 10:49
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 14 años
Puntos: 3
bash comando sed reemplazar caracter

Que tal amigos:

Resulta que estoy realizando un script bash donde quiero agregarle valor a una variable.

nuevo1.php
Código PHP:
$config['base_url'] = ' '
y en mi bash realizo lo siguiente:

config['base_url']=' '
config2['base_url']='cvbuilder/latitud33/rodrigo'

sed -i s:${config['base_url']}:${config2['base_url']}:g /nuevo1.php


pero me sale esto:

sed: -e expression #1, char 0: no previous regular expression

la custion es que si en ese espacio en blanco coloco algo.....me los reemplaza correctamente. pero al dejarlo en blanco no pasa nada =(

alquien sabe porque?
  #2 (permalink)  
Antiguo 27/07/2012, 13:59
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: bash comando sed reemplazar caracter

En primer lugar, no estás usando comillas para delimitar la expresión que le pasas al SED. Entonces, como tu variable tiene un espacio, lo toma como argumentos diferentes.

Luego, no sabemos qué es lo que contiene $config2['base_url'], podría estar causando otra clase de problema.

Tercero, ¿estás seguro de que nuevo1.php está en la carpeta raíz del servidor? si no es así, SED no lo encontrará y no podrá aplicar los cambios.

Si ya estás usando PHP, ¿por qué no hacés la sustitución de cadenas en PHP?


Saludos.
  #3 (permalink)  
Antiguo 27/07/2012, 14:26
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 14 años
Puntos: 3
Respuesta: bash comando sed reemplazar caracter

AlvaroG gracias por responder.

El script bash le puse nombre nose... modificar.sh, y necesito este script cuando haga un backup de por ejemplo una base de datos...entonces tengo que modificar ciertos parametros...por ejemplo los de la base de datos,

$config2['base_url'] es basicamente el host donde tengo mi sistema.... por ejemplo localhost/ci, y es la configuracion que trae por defecto el framework codeigniter,
el script funciona al poner cualquier parametro...pero al dejarlo vacio....no me funciona......

no se si me doy a entender..

esto funciona:

config['base_url']='localhost '
config2['base_url']='cvbuilder/latitud/rodrigo'

y esto no

config['base_url']=' '
config2['base_url']='cvbuilder/latitud/rodrigo'

el nuevo1.php lo tengo en la raiz pero es solo de prueba......una vez que el script me funciona lo llevo al directorio que corresponda.


=)
  #4 (permalink)  
Antiguo 28/07/2012, 18:54
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: bash comando sed reemplazar caracter

sigo creyendo que el problema es la falta de comillas para delimitar el argumento de sed, a raíz de que tu variable contiene espacios (y en caso de que esté vacío, s//cualquiercosa/g no es una expresión sed válida.


Saludos.
  #5 (permalink)  
Antiguo 29/07/2012, 15:55
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 14 años
Puntos: 3
Respuesta: bash comando sed reemplazar caracter

Y como lo podria hacer en ese caso? ..... quiero agregar el host del config de la base de datos.....?
  #6 (permalink)  
Antiguo 29/07/2012, 21:48
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 14 años
Puntos: 3
Respuesta: bash comando sed reemplazar caracter

LO logre solucionar e qui el codigo


sed 's/$config\['\''base_url'\''\]=""/$config\['\''base_url'\''\]="cvbuilder"/g' nuevo.php



Solucionado!

Etiquetas: linux
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:38.