Aprendiendo a hacer scripts en Linux

pak1s

Bueno os explico, estoy haciendo un ciclo superior de Administracion de Sistemas, y el profesor que nos imparte la asignatura de SO, no explica una mierda, y nos pone cosas de las que no nos enteramos.

Lo que necesitaba era un metodo para añadir y eliminar entradas a un fichero .DAT que contiene en lineas datos de personas, osea añadir personas y quitarlas, pero no puede ser mediante ediccion, osea no puedo usar "vi" ni "nano" ni "gedit" en el script, para muchos sera una cosa sencilla, pero para un principiante es bastante complicado. Puedo subiros el .DAT si lo necesitais.

A ver si alguien me puede echar una mano. Gracias

shortyStyle
"que tal si buscas en google" >> archivo.dat
1 2 respuestas
DiSKuN

no em he enterado muy bien porque te explicas, mal no, lo siguiente. Necesitas un script que añada y elimine nombres de personas dentro de un fichero .DAT?

Ulmo

Por lo q veo tú y tu profesor teneis cosas en común, una nula capacidad para explicaros.

¿Puedes usar "sed"? ¿La linea contiene solo el nombre o más información? ¿Hay repeticiones?

1 respuesta
uLISES_

Bueno mas que hacer scripts por lo que describes estas aprendiendo a usar el bash shell de linux, comandos y tal que serán útiles para futuras scripts.

Si no entendido mal tienes un archivo lleno de nombres y tienes que editar algunos, ahora mismo estoy algo falto de tiempo pero te dejo una mini guía para que busques en google.

Funciona tal que necesitas usar el comando que corta por zonas de linux no consigo recordar cual es, combinado con el grep para buscar el nombre de esa forma quitas gente de la lista y si lo que tienes es que añadir, es como dijo #2 Fulanito >> archivo.dat

Si no lo consigues cuando vuelva te ayudo.

2 respuestas
pak1s

#2 eii creo que lo he pillado, valdria algo asi como:

echo "Nombre:" read nomb;
echo "Apellidos:"   read apell;
echo "Dirección :"  read direc;
echo "Telefono:" read tlf;
echo "Fecha de nacimiento" read fnac;
echo $nomb:$apell:$direc:$tlf:$fnac >> AGENDA.DAT;

Por favor se un poco amable en tus respuestas, conozco google pero siempre es mas facil si te ayudan. Para alguien que lo sabe hacer no creo que le resulte tan complicado echar una mano.

#4 puedo usar cualquier tipo de comando, y perdonad que no me explicara mejor

#5 Gracias, para añadir creo que es como he puesto, ahora tengo otras asignaturas, pero ala tarde me pondre con lo de borrar nombre y demas, subire el archivo tambien, he escuchado algo del grep y el sort por ahi

1 respuesta
ElRuso

#5 Lo que buscas as grep o awk para extraer nombres del archivo.
Para saber como se usa google to the rescue, que no me acuerdo una mierda.

Ulmo

#6 Sigues explicandote muy mal, pero q muy muy mal xDD

Borrar una linea de un archivo puede ser muy sencillo:

sed "/^$nomb/d" AGENDA.DAT 

Añadir una nueva puede ser igual de sencillo, tal como pones y modificar, pues más de lo mismo

sed -i "s/$nomb:$apell:$direc:$tlf:$fnac/$nomb2:$apell2:$direc2:$tlf2:$fnac2/g" AGENDA.DAT 

Pero es q todavia ahora no se q es exactamente lo q necesitas.

Usuarios habituales

  • Ulmo
  • ElRuso
  • pak1s
  • uLISES_
  • DiSKuN
  • shortyStyle

Tags