Eliminar líneas que comiencen por una cadena
Publicado por caic (99 intervenciones) el 14/04/2014 12:35:02
Hola,
Tengo un fichero de usuarios con el siguiente formato:
Y estoy creando un pequeño script con menús para gestionar los usuarios.
Para borrar un usuario hago lo siguiente:
Pero tengo el problema de que si existe "usuario1" y "usuario11" y borro el "usuario1" borraré también "usuario11".
Para evitarlo he pensado hacer el mismo grep pero indicando que la linea a eliminar debe comenzar por el usuario mas los dos puntos:
Pero no consigo que funcione.
Si lo ejecuto en linea de comando sin variables si que funciona:
Pero con variables no funciona.
¿Alguna idea?
Gracias!
Tengo un fichero de usuarios con el siguiente formato:
1
2
usuario1:hash_de_la_contraseña
usuario2:hash_de_la_contraseña
Y estoy creando un pequeño script con menús para gestionar los usuarios.
Para borrar un usuario hago lo siguiente:
1
grep -v $USER_NAME usuarios.txt > usuarios.tmp && mv usuarios.tmp usuarios.txt
Pero tengo el problema de que si existe "usuario1" y "usuario11" y borro el "usuario1" borraré también "usuario11".
Para evitarlo he pensado hacer el mismo grep pero indicando que la linea a eliminar debe comenzar por el usuario mas los dos puntos:
1
grep -v '^$USER_NAME:' usuarios.txt
Pero no consigo que funcione.
Si lo ejecuto en linea de comando sin variables si que funciona:
1
grep -v '^usuario1:' usuarios.txt
Pero con variables no funciona.
¿Alguna idea?
Gracias!
Valora esta pregunta


0