Linux/Unix Shell Scripting - borrar una linea

   
Vista:

borrar una linea

Publicado por novata (20 intervenciones) el 14/04/2014 11:21:16
buenas me gustaria borrar una linea de un fichero y no se como, siempre borro el fichero entero

probe con:
egrep -e $dia:$mes > citas.txt

para que me borre las lineas que tengan el dia y mes que tengo como variable del fichero citas

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

borrar una linea

Publicado por xve (254 intervenciones) el 14/04/2014 14:15:09
Hola, te falta indicar el archivo origen, no?

Prueba así:
1
grep -v $dia:$mes file > citas.txt

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar una linea

Publicado por novata (20 intervenciones) el 14/04/2014 14:23:47
me sale : grep: file: No existe el archivo o el directorio
y me borra todo el fichero

el fichero es :
quince:enero:/home/usuario:s
(siendo s, si hay cita o no ese dia)
grep -v $dia:$mes:$directorio:$cita file > citas.txt
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

borrar una linea

Publicado por xve (254 intervenciones) el 14/04/2014 15:10:44
prueba poniéndolo entre comillas...
1
grep -v '$dia:$mes:$directorio:$cita' file > citas.txt

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar una linea

Publicado por novata (20 intervenciones) el 14/04/2014 15:32:06
grep -v '$dia:$mes:$directorio:$cita' > citas.txt
con el "file" no funciona nada, y aun con las comillas puestas que ya probe, me lo borra el fichero, es muy raro, es que no se que otro comando probar para borrar una linea porque probe con "sed"y nada


sed d $dia:$mes:$directorio:$cita fusuarios.txt

Alguna idea
no se que mas probar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

borrar una linea

Publicado por xve (254 intervenciones) el 14/04/2014 18:06:46
Pero file, es el nombre del fichero de donde quieres obtener los datos... no tienes que poner file... por ejemplo si el archivo se llama listado.txt, yo pondria:
1
grep -v '$dia:$mes:$directorio:$cita' listado.txt > citas.txt
o
1
grep -v $dia:$mes:$directorio:$cita listado.txt > citas.txt

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar una linea

Publicado por novata (20 intervenciones) el 14/04/2014 18:24:29
lo probe y nada, no me borra la linea, es muy raro, ademas no me deja guardarlo en el mismo fichero, me gustaría modificar ese fichero, ya que tengo que seguir trabajando con el, simplemente me lo guarda lo mismo en otro fichero

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

borrar una linea

Publicado por xve (254 intervenciones) el 14/04/2014 21:49:08
Nos puedes adjuntar el archivo, y el contenido de las variables que utilizas para poder probarlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar una linea

Publicado por novata (20 intervenciones) el 14/04/2014 21:58:44
grep -v $dia:$mes:$directorio:$cita' cita.txt> cita2.txt

en el fichero cita.txt
quince:septiembre:si
diez:enero:si
trece:enero:no
ocho:febrero:si


ese el contenido del fichero que introduje por teclado

y si yo me deja borrar por ejemplo el dia diez de febrero, no puedo borrar por posicion de linea, porque no se en que posición esta lo que quiero borrar.
tampoco me vale copiar el contenido del fichero cita ya borrada la linea en otro fichero, porque tengo que seguir trabajando con el fichero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

borrar una linea

Publicado por xve (254 intervenciones) el 15/04/2014 08:05:12
Ah, ok, te entiendo... entonces no tienes que utilizar grep!!! para ello, existe la instrucción sed que te elimina las lineas que coincidan con un patron en el mismo archivo, sin crear un archivo nuevo.

http://www.lawebdelprogramador.com/foros/Linux/1343944-Ejemplo_del_comando_sed.html

1
sed -i '/pattern/d' fichero.txt

Para tu ejemplo, seria algo como:
1
sed -i '/trece:enero:no/d' cita.txt

Espero que ahora si te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar una linea

Publicado por novata (20 intervenciones) el 15/04/2014 18:00:15
ya lo habia probado ese, y nada, no consigo que me borre del fichero

toca seguir probando
Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

borrar una linea

Publicado por xve (254 intervenciones) el 15/04/2014 19:01:33
Hola, yo lo he probado con el contenido del archivo que me has pasado y me ha funcionado perfectamente... me ha dejado el archivo cita.txt sin la linea...

Seguro que lo haces igual?
Te da algún mensaje o error?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar una linea

Publicado por novata (20 intervenciones) el 21/04/2014 16:54:41
no me da fallos, pero no me hace nada, es que yo le paso la variable y no el contenido de la variable, porque no se lo que tiene
no tengo ni idea que puede ser
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

borrar una linea

Publicado por xve (254 intervenciones) el 21/04/2014 18:21:48
De donde vienen esas variables? su contenido es correcto?

Nos puedes mostrar como creas esas variables para poder probarlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar una linea

Publicado por novata (20 intervenciones) el 21/04/2014 19:02:59
lo pido para entrar en el programa
read dia
read mes
read cita
echo $dia:$mes:$cita>> cita.txt
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

borrar una linea

Publicado por xve (254 intervenciones) el 21/04/2014 19:53:48
Ah, ok...

prueba así:

1
2
3
4
5
read dia
read mes
read cita
 
sed -i '/'$dia':'$mes':'$cita'/d' cita.txt

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar una linea

Publicado por novata (20 intervenciones) el 22/04/2014 13:02:50
que va...... quizas sea porque las variables las introduje en otra funcion, pero no deberia haber problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar una linea

Publicado por novata (20 intervenciones) el 30/04/2014 17:54:38
no me funciono, pero conseguí hacerlo :) gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

borrar una linea

Publicado por xve (254 intervenciones) el 30/04/2014 20:54:29
Pedes compartir como lo lograste por si algún otro usuario tiene el mismo problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar