con Ruby y sin metaprograming, bien simplificado:

# abrimos un fichero en modo append
fichero=File.open('nuevofichero.ext','a')

# declaramos el nombre de usuario que buscaremos
username = 'coco'

# el nuevo valor que tendra Calling-Station-Id
valornuevo= 'abcwxyz'

# iteramos por las lineas del fichero original
for linea in IO.read('/directorio/fichero.ext')

   
   # si la linea incluye la cadena de texto username y ademas "coco"
   if linea.include? 'User-Name' and linea.include? username

      # marcamos que este listo
      @semaforo=true

      # y copiamos la linea
      fichero.write linea
   
   # luego si llegamos a la linea Calling-Station-Id
   # y la variable indica que se encontró el usuario
   elsif @semaforo and linea.include? 'Calling-Station-Id'
         
         # escribimos la linea en el fichero de manera modificada
         # concatenamos el valor de la clave con la variable y las comillas
         fichero.write 'Calling-Station-Id = "' + valornuevo +'"'

   # luego si la linea ni pinta ni da color, la ponemos tal se plantea
   else

      fichero.write linea
      
   end 

end


Thread name: "[Gutl-l] sed y ejemplo de reemplazo condicional" 
Mail number: 1 
Date: Tue, Jun 17, 2014 
In reply to: Javier Santiesteban 
>
> este seria un ejemplo real de lo que necesito, pues quisiera hacer un script,
> ya sea con sed, awk o cualquier otro que me permita encontrar en un fichero la
> cadena User-Name = coco y entonces cambiar automaticamente la linea
> Calling-Station-Id = xxxxxxxx y asi sucesivamente
> 
> 
>     NAS-IP-Address = 192.100.0.50
>     NAS-Identifier = "leon"
>     Service-Type = Framed-User
>     Framed-Protocol = PPP
>     Framed-IP-Address = 172.40.2.110
>     User-Name = "coco"
>     NAS-Port = 344
>     NAS-Port-Type = Async
>     Called-Station-Id = "60110"
>     Calling-Station-Id = "abcwxyz"
>     Connect-Info = "48000/28800 V90/V42bis/LAPM"
>     Acct-Status-Type = Start
>     Acct-Session-Id = "0120051934"
>     Acct-Authentic = RADIUS
>     Acct-Delay-Time = 0
>     Proxy-State = 0x313036
>     Acct-Unique-Session-Id = "e2d926595daa0043"
>     Timestamp = 1402891264
>     Request-Authenticator = Verified
> 
> --
> 
> Javier Santiesteban Mitjans
> Administrador de Redes
> Grupo Empresarial Geominero-Salinero (MINEM)
> calle #13  %1ra y 3ra, Reparto Chibas, Guanabacoa
> email: javi...@gms.minem.cu
> telefono: 7976023/6024 ext 112
> 
> 
> --
> Este mensaje ha sido analizado por MailScanner
> en busca de virus y otros contenidos peligrosos,
> y se considera que está limpio.
> 
> ------------ próxima parte ------------
> Se ha borrado un adjunto en formato HTML...
> URL:
> <http://listas.jovenclub.cu/pipermail/gutl-l/attachments/20140616/f6bc965e/attachment.html>
> ______________________________________________________________________
> Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
> Gutl-l@jovenclub.cu
> https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l
> 
> <

-- 
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que est� limpio.

______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a