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

sed

Estas en el tema de sed en el foro de Unix / Linux en Foros del Web. Sabeis algun enlace a un buen y completo tutorial de sed?. Me gustaria sustituir por ejemplo: Nombre: Manuel por Nombre: x son una sucesión de ...
  #1 (permalink)  
Antiguo 10/10/2005, 04:08
Avatar de drulic
Usuario baneado!
 
Fecha de Ingreso: abril-2005
Mensajes: 174
Antigüedad: 19 años, 7 meses
Puntos: 0
sed

Sabeis algun enlace a un buen y completo tutorial de sed?. Me gustaria sustituir por ejemplo:

Nombre: Manuel

por

Nombre: x

son una sucesión de nombres, pero sin quitar "Nombre", como lo puedo hacer son sed, es decir, sería aplicar un "*" al sustituir, pero como lo puedo hacer.
  #2 (permalink)  
Antiguo 10/10/2005, 05:17
 
Fecha de Ingreso: enero-2004
Mensajes: 276
Antigüedad: 20 años, 10 meses
Puntos: 0
http://www.elotrolado.net/showthread...hreadid=269086

En el último post del hilo hay un zip adjunto. No recuerdo como de completo era el tutorial, pero para lo que quieres te sobrará seguro.

Saludos
  #3 (permalink)  
Antiguo 10/10/2005, 06:54
Avatar de drulic
Usuario baneado!
 
Fecha de Ingreso: abril-2005
Mensajes: 174
Antigüedad: 19 años, 7 meses
Puntos: 0
por más que he estado mirando no lo encuentro;

lo que hago es esto:
$cat fichero|sed 's/^Nombre: /Nombre: xxx/g'

pero claro esto, me saca por pantalla esto:

Nombre: xxx Manuel

y yo quiero que saque esto

Nombre: xxx

Esto es solo un ejemplo porque son como 100 nombres y quiero sustituir Nombre: "su nombre", por Nombre: xxx
  #4 (permalink)  
Antiguo 10/10/2005, 07:07
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 22 años, 4 meses
Puntos: 29
Cita:
Iniciado por drulic
$cat fichero|sed 's/^Nombre: /Nombre: xxx/g'
Coloca asi
Código:
$cat fichero|sed 's/^Nombre:* /Nombre: xxx/g'
Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #5 (permalink)  
Antiguo 10/10/2005, 07:36
Avatar de drulic
Usuario baneado!
 
Fecha de Ingreso: abril-2005
Mensajes: 174
Antigüedad: 19 años, 7 meses
Puntos: 0
eso ya lo he probado y no funciona. gracias.
  #6 (permalink)  
Antiguo 10/10/2005, 09:21
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 20 años, 4 meses
Puntos: 76
Casi-casi lo tengo, aunque aún no funciona bien:

cat archivo | sed -s 's/Nombre: [a-z][a-z][a-z][a-z]/Nombre: XXXX/g' > archivo2

Esto sólo funcionará bien en el caso de que todos los nombres sean de cuatro letras. Si un nombre tiene menos de cuatro letras no lo modificará, y si tiene más sólo modificará las cuatro primeras. A ver si a partir de esta media solución alguien encuentra la definitiva.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #7 (permalink)  
Antiguo 10/10/2005, 09:31
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 22 años, 4 meses
Puntos: 29
El problema aquí no es de sed sino de buscar información acerca de expresiones regulares. Seguiré buscando.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #8 (permalink)  
Antiguo 10/10/2005, 09:44
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 22 años, 4 meses
Puntos: 29
Cita:
Iniciado por Defero.tk
cat archivo | sed -s 's/Nombre: [a-z][a-z][a-z][a-z]/Nombre: XXXX/g' > archivo2
Ponle un asterisco en vez de tantos [a-z]
Código:
cat archivo | sed -s 's/Nombre: [a-z]*/Nombre: XXXX/g' > archivo2
O un +
Código:
cat archivo | sed -s 's/Nombre: [a-z]+/Nombre: XXXX/g' > archivo2
Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #9 (permalink)  
Antiguo 10/10/2005, 09:56
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 20 años, 4 meses
Puntos: 76
He probado tus propuestas, y esta solución funciona a las mil maravillas:

cat archivo | sed -s 's/Nombre: [a-z]*/Nombre: XXXX/g' > archivo2
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #10 (permalink)  
Antiguo 10/10/2005, 09:58
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 22 años, 4 meses
Puntos: 29
Bueno si valió la pena el esfuerzo, drulic ahora tu tienes la última palabra.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #11 (permalink)  
Antiguo 10/10/2005, 10:01
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 20 años, 4 meses
Puntos: 76
Un ejemplo:

Cita:
[dan@dan Desktop]$ cat cosa.txt
Nombre: Pepe
Apellidos: pérez
Profesión: carpintero

Nombre: Antonio
Apellidos: garcía
Profesión: fontanero

Nombre: José
Apellidos: lópez
Profesión: cerrajero
[dan@dan Desktop]$ cat cosa.txt | sed -s 's/Nombre: [A-z]*/Nombre: XXXX/g' > cosa2.txt
[dan@dan Desktop]$ cat cosa2.txt
Nombre: XXXX
Apellidos: pérez
Profesión: carpintero

Nombre: XXXX
Apellidos: garcía
Profesión: fontanero

Nombre: XXXX
Apellidos: lópez
Profesión: cerrajero
[dan@dan Desktop]$
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #12 (permalink)  
Antiguo 10/10/2005, 10:33
Avatar de drulic
Usuario baneado!
 
Fecha de Ingreso: abril-2005
Mensajes: 174
Antigüedad: 19 años, 7 meses
Puntos: 0
voy a probarlo y les cuento. Gracias por las molestias y por su trabajo, yo intente, pero me tengo que machacar con expresiones regulares, además ahora es que no tenía mucho tiempo. Les cuesto en cuanto lo pruebe. Gracias de nuevo.
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 00:54.