elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  ayuda comando sed shell script SO:SunOS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda comando sed shell script SO:SunOS  (Leído 2,818 veces)
juanxo12

Desconectado Desconectado

Mensajes: 16


Ver Perfil
ayuda comando sed shell script SO:SunOS
« en: 10 Julio 2017, 23:25 pm »

Hola, tengo un problema con el comando sed no consigo modificar un fichero  /etc/passwd
Script tiene que cambia el directorio de conexion de un usuario
Alguna alma caritativa que conteste?
Código
  1. if [ $# -ne 3 ]
  2. then
  3. echo "uso:" $0 "<Usuario> <Nombre> <Directorio>"
  4. exit 1
  5. fi
  6. if [ ! -d "$3" ] #comprueba si ruta dada existe
  7.         then
  8. echo "El directorio no existe"
  9. exit 1
  10. fi
  11.  
  12. st=`grep "$1" /etc/passwd | grep "$2" |cut -f6 -d":"`
  13. if [ -z "$st" ]        #comprueba si vaiable st esta vacia
  14. then
  15. echo "El usuario no existe"
  16. exit 1
  17. fi
  18. echo "Quiere cambiar el directorio de conexion de " $1 "actualmente" $st "a" $3 "(S/N)?"  
  19. read op
  20. case $op in
  21. [sS])
  22. echo "Modificando fichero..."
  23. sed '/"$1"/ s/"$st"/"$3"/g' /etc/passwd >newfile  #no funciona
  24. echo "Fichero modificado"
  25. ;;
  26. *)
  27. echo "El fichero no sera modificado"
  28. exit 1
  29.                                ;;
  30. esac



edito parece que ya funciona.
Sed permite utilizar mas delimitadores pongo el codigo por si alguien tiene el mismo problema
Código
  1. if [ $# -ne 3 ]
  2. then
  3. echo "uso:" $0 "<Usuario> <Nombre> <Directorio>"
  4. exit 1
  5. fi
  6. if [ ! -d "$3" ] #comprueba si ruta dada existe
  7.         then
  8. echo "El directorio no existe"
  9. exit 1
  10. fi
  11.  
  12. st=`grep "$1" /etc/passwd | grep "$2" |cut -f6 -d":"`
  13. if [ -z "$st" ]        #comprueba si vaiable st esta vacia
  14. then
  15. echo "El usuario no existe"
  16. exit 1
  17. fi
  18. echo "Quiere cambiar el directorio de conexion de " $1 "actualmente" $st "a" $3 "(S/N)?"  
  19. read op
  20. case $op in
  21. [sS])
  22. echo "Modificando fichero..."
  23.        sed "/$1/ s+$st+$3+g" /etc/passwd >newfile
  24.                                echo "Fichero modificado"
  25.                                echo  `grep "$1" newfile | grep "$2" |cut -f6 -d":"`
  26. ;;
  27. *)
  28. echo "El fichero no sera modificado"
  29. exit 1
  30.                                ;;
  31. esac


« Última modificación: 11 Julio 2017, 16:51 pm por juanxo12 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[shell script] ayuda con script, :( « 1 2 »
Scripting
dark_fidodido 14 11,380 Último mensaje 16 Septiembre 2009, 10:28 am
por dark_fidodido
(Ayuda) Sobre el comando shell y la ruta
Programación Visual Basic
sinksss 2 2,083 Último mensaje 6 Marzo 2010, 17:51 pm
por sinksss
[Shell script] no me funciona un comando (SOLUCIONADO)
Scripting
moikano→@ 2 3,742 Último mensaje 26 Octubre 2010, 19:22 pm
por moikano→@
[BASH] Ayuda!! comando ping y ejecucion script dentro de un comando
Scripting
H4WK 1 5,120 Último mensaje 1 Junio 2013, 11:18 am
por H4WK
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines