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

Ayuda con comando sed

Estas en el tema de Ayuda con comando sed en el foro de Unix / Linux en Foros del Web. Hola, Estoy armando un script y necesito sustituir una palabra en un archivo, para ello utilizo el comando sed, pero ahora bien... el tema es ...
  #1 (permalink)  
Antiguo 02/11/2010, 14:56
Avatar de darkra  
Fecha de Ingreso: abril-2010
Mensajes: 11
Antigüedad: 14 años, 8 meses
Puntos: 0
Ayuda con comando sed

Hola,
Estoy armando un script y necesito sustituir una palabra en un archivo, para ello utilizo el comando sed, pero ahora bien... el tema es que no se como hace para que lea una variable,

Código:
echo "Ingrese numero"
read num

numero="$num"

sed 's/50/$numero/g' datos.dat
Explico mejor,
ingreso un numero, lo guardo en la variable numero y con sed quiero que reemplaze en el archivo datos.dat, 50 por el numero que ingrese anteriormente
como puse en el codigo probe con $numero como lo hago normalmente pero me muestra la cadena $numero en vez del contenido de la variable.
Alguna idea de como puedo hacerlo?
  #2 (permalink)  
Antiguo 03/11/2010, 18:52
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 11 meses
Puntos: 36
Respuesta: Ayuda con comando sed

Primero, la reasignación de la variable es un trabajo inútil. Si ya tienes $num, ¿por qué no trabajas directamente con él?.

Segundo, tu error está en la utilización de comillas simples; debes usar dobles.

Tercero, eso te arrojaría a la salida estándar el resultado del reemplazo, no modificaría el archivo. Si quieres modificar directamente el archivo, necesitas pasar el parámetro -i a sed.

Código BASH:
Ver original
  1. #!/bin/bash
  2.  
  3. echo "Ingrese numero"
  4. read num
  5.  
  6. sed "s/50/${num}/g" datos.dat
  7. # o
  8. # sed -i "s/50/${num}/g" datos.dat
  9. # Si quieres el reemplazo sea directamente en el archivo.

__________________
I ♥ The Music!
  #3 (permalink)  
Antiguo 10/12/2010, 16:43
 
Fecha de Ingreso: diciembre-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda con comando sed

Hola maturano

A mi eso.. no me funciona.

Tengo una variable llamado ANNO definida asi:
ANNO='cut -c 1-4 variables'

Y si la pongo en pantalla, me saca perfectamente el año en cuestion, pero al añadirlo al sed... me da error.

Mi sentencia es:

sed -i "/ star_year/s/[0-9][0-9][0-9][0-9]/${ANNO}/" archivo

Si defino ANNO=2010, si funciona.

Q hago mal???

Gracias

Última edición por urkitarke; 10/12/2010 a las 17:37
  #4 (permalink)  
Antiguo 11/12/2010, 03:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Solucionado !

Comparto mi... descubrimiento....

Resulta (y era algo q sospechaba..) que al hacer el cut, la variable es de tipo "string" y yo necesitaba un número.
Pr hacer q una variable sea un número basta con poenrla entre paréntesis, de tal manera q hice:

ANNO=('cut bla bla bla')

y ya funciona !!

Etiquetas: comando, sed
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 04:15.