Resultados 1 al 12 de 12

NEED AYUDA CON LINUX (SCRIPT)

Esta es una discusión para el tema NEED AYUDA CON LINUX (SCRIPT) en el foro Linux, bajo la categoría Ayuda Técnica; HOLA...OTRAVES...ESPERO NO MOLESTARLES PERO NECESITO AYUDA CON LA TERMINAL DE LINUX (SCRIPT) OJALA Q ALGUIEN ME PUEDA AYUDAR... EL EJERCICIO ...
Página: 1


  1. #1
    Senior Member Avatar de Maverik
    Fecha de ingreso
    15 ene, 09
    Ubicación
    Madrid-Spain :D
    Mensajes
    150

    Predeterminado NEED AYUDA CON LINUX (SCRIPT)

    HOLA...OTRAVES...ESPERO NO MOLESTARLES PERO NECESITO AYUDA CON LA TERMINAL DE LINUX (SCRIPT) OJALA Q ALGUIEN ME PUEDA AYUDAR...

    EL EJERCICIO ES ESTE:

    UN MENU CON ESTAS OPCIONES:

    - CREAR FICHERO
    - MOSTRAR EL CONTENIDO DEL FICHERO
    - GUARDAR EL FICHERO
    - AÑADIR LINEA DE FICHERO
    - BORRAR LINEA DE FICHERO
    - MOSTRAR INFORMACION DE UN FICHERO
    - SALIR DEL SCRIPT

    MAS DATOS:

    1) LA PRIMERA OPCION DEBERA PEDIR AL USUARIO UN NOMBRE Y CREAR UN FICHERO VACIO SI NO EXISTE EL FICHERO. SI YA EXISTE SE SACARA UN MENSAJE DE AVISO PREGUNTANDO SI LO QUIERE SOBREESCRIBIR. SI ESTO ES ASI CREARA EL FICHERO VACIO SOBREESCRIBIENDO AL ANTERIOR. EN CASO CONTRARIO NO SE HARA NADA

    2) LA SEGUNDA OPCION MOSTRARA LAS LINEAS DEL FICHERO POR PANTALLA PRECEDIDAS DE SU NUMERO DE LINEA (PUEDE USAR COMANDOS COMO HEAD,TAIL,WC SU LO CREE APROPIADO)

    3) LA TERCERA OPCION GUARDARA EL FUCHERO QUE SE ESTA EDITANDO EN DISCO

    4) LA CUARTA OPCION PEDIRA UN NUMERO DE LINEA PRIMERO Y EL CONTENIDO DE LA LINEA DESPUES. SE INTRODUCIRA DICHA LINEA EN LA POSICION CORRESPONDIENTE Y SE MOSTRARA POR PANTALLA EL CONTINIDO ACTUALISADO DEL FICHERO COMO EN LA SEGUNDA OPCION

    5) LA QUINTA OPCION PEDIRA UN NUMERO DE LINEA Y LA ELIMINARA DEL FICHERO Y SE MOSTRARA POR PANTALLA EL CONTENIDO ACTUALIZADO DEL FICHERO CMO EN LA SEGUNDO OPCION

    6) FINALMENTE SE TENDRA LA OPCION DE MOSTRAR POR PANTALLA LOS DATOS DEL FICHERO COMO EL NUMERO DE LINEAS, LA FECHA DE ULTIMA MODIFICAION, EL TAMAÑO Y LOS PERMISOS DE ACCESO

    7) LA OPCION SALIR PREGUNTARA SI DESEA GUARDAR, GUARDARA EN CASO AFIRMATIVO, Y SALDRA DEL SCRIPT

    UN POCO LIOSO NO ? xD! eh estado intentandolo pero no me sale nose q hacer :S:S:S:S:S ni mi puto profe sikiera me puede ayudar

  2. #2
    h4x0r Administrador Avatar de Devil
    Fecha de ingreso
    24 may, 01
    Ubicación
    Peru
    Mensajes
    8,678

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    Lo que pides no es nada complicado, pero no voy a hacer tu tarea. Te aconsejo que busques en Google "bash shell scripting" y te leas varios tutoriales. Debes aprender a usar:

    case (con esto creas los menus)
    cat (muestra el contenido de archivos)
    echo (agregar lineas)
    sed (editar/modificar contenido de archivos)

    Comandos como grep y awk tambien te seran muy utiles. Shell scripting es un lenguaje de programacion muy potente. Te daras cuentas que mucho de la administracion de Linux se hace muy simple si dominas este lenguaje.
    Devil: Sandro Jurado
    Admin: Bloodzone.net / Gamers4Life
    Bloodzone.net: Reglas | Netiqueta | CS 1.6 FAQ | HLDS howto
    Specs: Intel Core i7 3770K |
    Gigabyte Z77X-UD5H | Kingston HyperX 16GB PC3-15000 | Zotac GTX670 | Corsair Neutron GTX 240GB SSD + 3TB HDD | ASUS Xonar Essence ST | Seasonic Platinum 1000W | Razer Mamba 4G | Razer BlackWidow Ultimate | Sennheiser PC 360 | BenQ XL2410T 120Hz
    Otros: Twitter Facebook Youtube Twitch.tv

  3. #3
    Senior Member Avatar de Maverik
    Fecha de ingreso
    15 ene, 09
    Ubicación
    Madrid-Spain :D
    Mensajes
    150

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    uFFFF este topic....weno al final hice el script ...y despues de ello me puse a hacer otro que es de un colegio....la historia esque realize todo los campos pero me eh quedado atascado en ciertos campos que son de consultas eh informes ... solo queria saber si alguien fuera tan amable de ayudarme o darme alguna y idea y/o consejo ... esta es la duda:

    EXPLICACION DE LOS VALORES USADOS
    -Aki me hace la busqueda del campo materia y me duelve solo el numero de
    linea:arrowd:
    linea=`grep -n -i "$materia" BBDD_Profesor.txt|cut -f1 -d ":"`

    -luego con el valor de LINEA me situo exactamente en la linea de la materia
    en la que esta y la envio a un fichero temporal
    sed -n "$linea p" BBDD_Profesor.txt > temp1.txt

    -Entonces una ves creado el fichero lo que hago es ...que a esa misma linea le
    sumo las lineas que faltan por mostrar y las envio al final del archivo temporal
    ,esto lo hago con un bucle

    PROBLEMA?
    Es que cuando tengo 2 campos materia con el mismo nombre con el cual eh buscado...lo que hace es una cosa rara como esta:

    -----------/*ARCHIVO TEMPORAL*/-----------
    Materia: fisica
    =====FIN REGISTRO=====

    =====INICIO REGISTRO=====
    Codigo: 4

    Y el registro que tengo el archivo principal esta asi
    -----------/*ARCHIVO TEMPORAL*/-----------
    =====INICIO REGISTRO=====
    Codigo: 3
    Nombre: 3
    Apellidos: 3
    DNI: 3
    Telefono: 3
    Materia: fisica
    =====FIN REGISTRO=====

    =====INICIO REGISTRO=====
    Codigo: 4
    Nombre: 4
    Apellidos: 4
    DNI: 4
    Telefono: 4
    Materia: fisica
    =====FIN REGISTRO=====

    QUE ES LOQ HACE?
    Pues que va buscando la primera linea que cohincida con lo buscado en este caso FISICA y lo suma mas 4 lineas mas

    SALIDAS PARA ESTE PROBLEMA?
    1) Pasar ese bloke a este tipo de formato que quedaria mas o menos asi..
    Materia: fisica,Codigo: 4,Nombre: 4,Apellidos: 4,DNI: 4,Telefono: 4

    2) Solo dejarlo tal como esta y no poner mas materias con el mismo valor [Esta opcion no es viable] xq un colegio tiene mas de 1 profesor que imparten mas de una materia

    3) Realizar un ARRAID BIDEMENSIONAL [que nose si se podra] en el cual se vallan guardando las lineas en cada indice y asi se van sumando y enviando al final de un archivo temporal en blanco

    PD: la opcion 2 la hice pero no es viable...>.<!

    si alguien me ayudaria un poco se lo agradecere bastante

  4. #4
    h4x0r Administrador Avatar de Devil
    Fecha de ingreso
    24 may, 01
    Ubicación
    Peru
    Mensajes
    8,678

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    La verdad que se me complica entenderte. Pon ejemplos reales de la data que tienes por explotar y como quieres que quede finalmente. No pongas 1 solo registro nada mas, sino varios para tener claro que buscas.

    Revise tu codigo

    Código:
    linea=`grep -n -i "$materia" BBDD_Profesor.txt|cut -f1 -d ":"` 
    sed -n "$linea p" BBDD_Profesor.txt > temp1.txt
    mas corto seria algo como esto:

    Código:
    linea=`grep $materia" BBDD_Profesor.txt | awk -F: '{ print $1 }' > temp1.txt`
    o mejor aun:

    Código:
    linea=`awk -F: '/$materia/ { print $1 }' BBDD_Profesor.txt > temp1.txt`
    El resto del problema no me queda claro porque no has puesto el codigo que te junta las cosas y te da el resultado final. Como te digo, muestranos un archivo de ejemplo y de ahi muestra lo que te sale con tu scripts y como querrias que se viese el resultado final.

    Asegurate tambien de invocar tu script con sh -x <script.sh> para que puedas hacerle debug. Tambien si vas a escribir en un archivo temporal para luego leerlo y escribirse encima de ese mismo, te recomiendo mejor que escribas sobre tun temp2.txt para que asi notas las diferencias y sea mas simple descartar el problema.
    Devil: Sandro Jurado
    Admin: Bloodzone.net / Gamers4Life
    Bloodzone.net: Reglas | Netiqueta | CS 1.6 FAQ | HLDS howto
    Specs: Intel Core i7 3770K |
    Gigabyte Z77X-UD5H | Kingston HyperX 16GB PC3-15000 | Zotac GTX670 | Corsair Neutron GTX 240GB SSD + 3TB HDD | ASUS Xonar Essence ST | Seasonic Platinum 1000W | Razer Mamba 4G | Razer BlackWidow Ultimate | Sennheiser PC 360 | BenQ XL2410T 120Hz
    Otros: Twitter Facebook Youtube Twitch.tv

  5. #5
    Senior Member Avatar de Maverik
    Fecha de ingreso
    15 ene, 09
    Ubicación
    Madrid-Spain :D
    Mensajes
    150

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    Eh estado revisando el codigo que me as dado a poner y tiene un pequeño error

    Código:
    linea=`awk -F: '/$materia/ { print $0 }' BBDD_Profesor.txt > temp1.txt`
    El $1 era $0
    weno al problema el fichero en si tiene los siguientes datos

    Código:
    =====INICIO REGISTRO=====
    Codigo: COD1
    Nombre: Victor
    Apellidos: Valdez
    DNI: x3123123-q
    Telefono: 963248526
    Materia: quimica
    =====FIN REGISTRO=====
     
    =====INICIO REGISTRO=====
    Codigo: cod2
    Nombre: christina
    Apellidos: salasar
    DNI: x6853123-q
    Telefono: 984932912
    Materia: fisica
    =====FIN REGISTRO=====
     
    =====INICIO REGISTRO=====
    Codigo: cod3
    Nombre: david
    Apellidos: Caseres
    DNI: x4192126-q
    Telefono: 123123411
    Materia: Quimica
    =====FIN REGISTRO=====
     
    =====INICIO REGISTRO=====
    Codigo: cd5
    Nombre: Javier
    Apellidos: Alonso
    DNI: x8733221-q
    Telefono: 965248751
    Materia: fisica
    =====FIN REGISTRO=====
    - Al realizar la busqueda por MATERIA hace algo raro, en este caso quiero que me muestre a los profesores que imparten FISICA...y en el fichero temporal me queda asi

    Código:
    Materia: fisica
    =====FIN REGISTRO=====
     
    =====INICIO REGISTRO=====
    Codigo: cod3
    deberia de quedar asi
    Código:
    Materia: fisica
    Codigo: cod2
    Nombre: christina
    Apellidos: salasar
    DNI: x6853123-q
    Telefono: 984932912
    
    Materia: fisica
    Codigo: cd5
    Nombre: Javier
    Apellidos: Alonso
    DNI: x8733221-q
    Telefono: 965248751
    El codigo que tengo en el script es el siguiente
    Código:
    echo "Consulta Por Materia"
    echo "===================="
    echo ""
    echo "Ingrese el nombre de la materia"
    echo -n "Nombre: "
    read materia
    
    linea=`grep -n -i "$materia" BBDD_Profesor.txt|cut -f1 -d ":" #Me devuelve el numero de linea de la materia          
    sed -n "$linea p" BBDD_Profesor.txt > temp1.txt #Me situo en la linea y la mando al fichero TEMP1.txt
     let linea=$linea-5[/COLOR] #Le resto -5  y lo situo en la linea del CODIGO del registro y le mando al final del fichero TEMP1.TXT
    sed -n "$linea p" BBDD_Profesor.txt >> temp1.txt
    
    i=0
    while [ $i -lt 4 ];[/COLOR] #Bucle para ir colocando los camposfaltantes
     do
    let linea=$linea+1
    sed -n "$linea p" BBDD_Profesor.txt >> temp1.txt
    let i=$i+1
    done
    clear
    echo "Vista del Registro [$materia]"
    echo " "
    cat temp1.txt
    rm temp1.txt
    echo -e -n "\nPresione intro para continuar..."
    read -s
    chmod ug+x colegio.sh < PERMISOS DEL SCRIPT

  6. #6
    h4x0r Administrador Avatar de Devil
    Fecha de ingreso
    24 may, 01
    Ubicación
    Peru
    Mensajes
    8,678

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    No se porque te complicas tanto si con 1 grep puedes conseguir el resultado:

    Código:
    echo "Consulta Por Materia"
    echo "===================="
    echo ""
    echo "Ingrese el nombre de la materia"
    echo -n "Nombre: "
    read materia
    
    echo "Vista del Registro [$materia]"
    echo " "
    grep -iB 5 $materia BBDD_Profesor.txt | sed 's/--//' 
    echo -e -n "\nPresione intro para continuar..."
    read -s
    En un rato posteo como hacerlo reordenando los campos.
    Devil: Sandro Jurado
    Admin: Bloodzone.net / Gamers4Life
    Bloodzone.net: Reglas | Netiqueta | CS 1.6 FAQ | HLDS howto
    Specs: Intel Core i7 3770K |
    Gigabyte Z77X-UD5H | Kingston HyperX 16GB PC3-15000 | Zotac GTX670 | Corsair Neutron GTX 240GB SSD + 3TB HDD | ASUS Xonar Essence ST | Seasonic Platinum 1000W | Razer Mamba 4G | Razer BlackWidow Ultimate | Sennheiser PC 360 | BenQ XL2410T 120Hz
    Otros: Twitter Facebook Youtube Twitch.tv

  7. #7
    h4x0r Administrador Avatar de Devil
    Fecha de ingreso
    24 may, 01
    Ubicación
    Peru
    Mensajes
    8,678

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    Reordenando las filas:

    Código:
    echo "Consulta Por Materia"
    echo "===================="
    echo ""
    echo "Ingrese el nombre de la materia"
    echo -n "Nombre: "
    read materia
    echo "Vista del Registro [$materia]"
    echo " "
    
    cat BBDD_Profesor.txt | sed 's/[ \t]*$//' | sed '/^$/d' |\
    while read x ; do
      let "y += 1"
      linea[$y]=$x
      if [ $y -eq 8 ] ; then
       if [ `echo ${linea[7]} | grep -ic $materia` -eq 1 ] ; then
        for z in 7 2 3 4 5 6 9 ; do
         echo ${linea[$z]}
        done
       fi
       y=0
      fi
    done
    
    echo -e -n "\nPresione intro para continuar..."
    read -s
    Devil: Sandro Jurado
    Admin: Bloodzone.net / Gamers4Life
    Bloodzone.net: Reglas | Netiqueta | CS 1.6 FAQ | HLDS howto
    Specs: Intel Core i7 3770K |
    Gigabyte Z77X-UD5H | Kingston HyperX 16GB PC3-15000 | Zotac GTX670 | Corsair Neutron GTX 240GB SSD + 3TB HDD | ASUS Xonar Essence ST | Seasonic Platinum 1000W | Razer Mamba 4G | Razer BlackWidow Ultimate | Sennheiser PC 360 | BenQ XL2410T 120Hz
    Otros: Twitter Facebook Youtube Twitch.tv

  8. #8
    Senior Member Avatar de Maverik
    Fecha de ingreso
    15 ene, 09
    Ubicación
    Madrid-Spain :D
    Mensajes
    150

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    Muchas gracias Devil por la ayuda, me sale perfectamente no me habia recordado de lo que hacia el atributo B que mostraba un numero de lineas del contexto anterior, segun el numero que le indico >.<!.

    Una cosa mas ...espero no ser molestoso...pero tengo un problema al pasar todos los registros a una sola linea...lo hice con el siguiente codigo
    Código:
    echo "`cat BBDD_Profesor.txt | cut -f2 | grep -i -h ".${k}"` > TodoLinea
    El problema es que lo mete absolutamente todo en una sola linea.
    Solo queria saber como pasarle para que vaya cortanto registro por registro

  9. #9
    h4x0r Administrador Avatar de Devil
    Fecha de ingreso
    24 may, 01
    Ubicación
    Peru
    Mensajes
    8,678

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    Ponme de ejemplo el resultado que quieres obtener.

    PD: Necesitas hacer un loop, sea con for o while. Sino te va a poner todo en 1 sola linea. Si tu idea es que cada bloque sea 1 linea, necesitas bucles o loops. Revisa mi segundo script que te puede ayudar con eso.
    Devil: Sandro Jurado
    Admin: Bloodzone.net / Gamers4Life
    Bloodzone.net: Reglas | Netiqueta | CS 1.6 FAQ | HLDS howto
    Specs: Intel Core i7 3770K |
    Gigabyte Z77X-UD5H | Kingston HyperX 16GB PC3-15000 | Zotac GTX670 | Corsair Neutron GTX 240GB SSD + 3TB HDD | ASUS Xonar Essence ST | Seasonic Platinum 1000W | Razer Mamba 4G | Razer BlackWidow Ultimate | Sennheiser PC 360 | BenQ XL2410T 120Hz
    Otros: Twitter Facebook Youtube Twitch.tv

  10. #10
    Senior Member Avatar de Maverik
    Fecha de ingreso
    15 ene, 09
    Ubicación
    Madrid-Spain :D
    Mensajes
    150

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    Gracias por la ayuda aunque el script que me as dado no me muestra ningun campo...>.<!
    y lo de ponerlo en una todo en una linea, te lo explico aki :arrowd:
    En el archivo temporal TodoLine lo pone asi
    Código:
    =====INICIO REGISTRO=====Codigo: COD1 Nombre: Victor Apellidos: Valdez DNI: x3123123-7 Telefono: 963248526 Materia: quimica =====FIN REGISTRO===== =====INICIO REGISTRO===== Codigo: cod2 Nombre: christina Apellidos: salasar DNI: x6853123-q Telefono: 984932912 Materia: fisica =====FINREGISTRO=====
    debedria de quedar asi
    Código:
    Materia: fisica Codigo: cod2 Nombre: christina Apellidos: salasar DNI: x6853123-q Telefono: 984932912
    
    Materia: quimica Codigo: COD1 Nombre: Victor Apellidos: Valdez DNI: x3123123-7 Telefono: 963248526

  11. #11
    h4x0r Administrador Avatar de Devil
    Fecha de ingreso
    24 may, 01
    Ubicación
    Peru
    Mensajes
    8,678

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    Bueno, el comando que pusiste arriba no se si sea parte de algo mas elaborado o no, pero no me funciona tal cual. Pero mas alla de eso, para pasar secciones completas a que sean una sola fila, necesitas de todas maneras loops. Y seria recomendable poner delimitadores de campo para que asi eso despues sea mas facil de explotar.

    Yo lo haria asi:

    Código:
    cat BBDD_Profesor.txt | sed 's/[ \t]*$//' | sed '/^$/d' |\
    while read x ; do
      let "y += 1"
      linea[$y]=$x
      if [ $y -eq 8 ] ; then
        for z in 7 2 3 4 5 6 ; do
         echo -n "${linea[$z]} "
        done
       y=0
       echo ; echo
      fi
    done
    Con esto tienes cada campo facilmente identificado. En el loop del "for" puedes indicar el orden de los campos (en vez de 7 2 3 4 5 6) y en la linea "echo -n" puedes ponerle delimitadores de campo.
    Devil: Sandro Jurado
    Admin: Bloodzone.net / Gamers4Life
    Bloodzone.net: Reglas | Netiqueta | CS 1.6 FAQ | HLDS howto
    Specs: Intel Core i7 3770K |
    Gigabyte Z77X-UD5H | Kingston HyperX 16GB PC3-15000 | Zotac GTX670 | Corsair Neutron GTX 240GB SSD + 3TB HDD | ASUS Xonar Essence ST | Seasonic Platinum 1000W | Razer Mamba 4G | Razer BlackWidow Ultimate | Sennheiser PC 360 | BenQ XL2410T 120Hz
    Otros: Twitter Facebook Youtube Twitch.tv

  12. #12
    Senior Member Avatar de Maverik
    Fecha de ingreso
    15 ene, 09
    Ubicación
    Madrid-Spain :D
    Mensajes
    150

    Predeterminado Re: NEED AYUDA CON LINUX (SCRIPT)

    Gracias Devil Termine el script ^^ ....
    Ahora nada mas tengo que modificar unas cosas del script para que sea vea mas bonito ....
    Última edición por Maverik; 06/06/2010 a las 04:52

Temas similares

  1. script awp ??
    Por kidman en el foro Counter-Strike
    Respuestas: 11
    Último mensaje: 24/11/2004, 22:45
  2. Ayuda Server Linux
    Por DareDevil_PE en el foro Server Admin
    Respuestas: 4
    Último mensaje: 17/11/2003, 22:40
  3. Ayuda Server Linux
    Por DareDevil_PE en el foro Server Admin
    Respuestas: 0
    Último mensaje: 17/11/2003, 18:10
  4. ayuda con mi server linux
    Por BARRACUDA en el foro Server Admin
    Respuestas: 1
    Último mensaje: 22/09/2003, 18:40
  5. Ayuda kon 1.5 linux servEr
    Por |Taro| en el foro Server Admin
    Respuestas: 5
    Último mensaje: 11/08/2002, 18:57

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •