Sustituir lineas en un archivo de texto

hola a todos, estoy buscando algun comando para la shell de linux que consiga sustituir lineas de texto en un archivo por otras mas largas. me explico....

Imaginaos un archivo llamado equiposfutbol.txt que tenga este contenido

barcelona:ronaldinho, deco, guily
r.madrid:beckham, raul, ronaldo
valencia:cañizares,albelda,vicente

Si por ejemplo quiero añadir a la segunda linea que empieza por r.madrid el texto ",casillas", con que comando de la consola de linux podria hacerlo?

para añadir al final de fichero se k se puede usar ">>", pero por medio ni idea..

PD: los equipos están puestos al azar...si alguien es de otro equipo k no me pegue [carcajad]

gracias.
Puedes usar sed, que es un editor de texto no interactivo. Le pasas como parámetros lo que quieres que haga y él te lo hace.
Como sed puede ser un poco tricky:

sed -i -e '/^r\.madrid:.*/s~~&,cañizares~' equiposfutbol.txt


Eso te debería servir para lo facil.... y 'man sed' para lo demás.

Saludos.Ferdy
muchas gracias, ya k veo k es un comando muy util....pero muy lioso [burla3] ...

el caso es k los textos los tengo en variables de shell

y si pongo $nombre....se añade el $nombre, en lugar del valor de la variable....ese comando no acepta variables de ese tipo? [idea]
4 respuestas