|
|
Linux Problemas técnicos bajo la plataforma Linux |
|
Thread Tools | Display Modes |
|
06-23-2007, 01:17 AM | #1 |
Pledge
Join Date: Jun 2007
Location: Syrtis
Posts: 45
|
Script Linux (bash) para buscar NPCs
Gracias a otro hilo, conseguí de la página de regnumZg.com.ar un archivo de texto con la base de datos de todos los NPCs del juego. Tras abrirlo y ver lo sencillo que era enseguida se me ocurrió hacer un script para buscar en él de forma sencilla a través del terminal de nuestro Linux. Para empezar, he cogido la base de datos y la he partido en tres (un archivo por reino). También he quitado los acentos para que la búsqueda sea más sencilla. Los archivos son los siguientes:
Luego he creado un sencillo script para bash que lo que hace es volcar el contenido del archivo con el camando cat, ponerlo por columnas con el comando awk, y finalmente filtrarlo (aquí es donde entra en acción la búsqueda) con el comando grep: Code:
#!/bin/bash file=npcs.txt for i in $*; do if [[ $i == $1 ]]; then srch="$i" else srch="$srch $i" fi done if (( $# == 0 )); then cat $file | awk -F : '{printf "%-27s %-23s %-24s %4s:%4s\n",$1,$2,$3,$4,$5}' else cat $file | awk -F : '{printf "%-27s %-23s %-24s %4s:%4s\n",$1,$2,$3,$4,$5}' | grep --color -i "$srch" fi exit http://www.mediafire.com/?9wi11gbgigl El funcionamiento es muy sencillo, lo primero es descomprimirlo (por si acaso, no useis el directorio del juego, hacerlo mejor en otro directorio), y editar el script npc.bash (podeis usar vi, nano, gedit, etc.) y cambiar donde pone pone "file=npcs.txt" y poner la base de datos de vuestro reino (ver más arriba). Como se habrán dado cuenta, viene por defecto con el reino de Syrtis (es el mío, jeeje) por lo que si sois de Syrtis no hay que cambiar nada. Luego hay que comprobar que el script tenga permisos de ejecución y en el caso de que no los tenga cambiarlos con chmod +x npc.bash. Finalmente ejecutar el script. Así por ejemplo:
Por cierto, para hacer la búsqueda más sencilla, no hace falta poner acentos, ni respetar las mayúsculas/minúsculas. Luego también podemos incluso copiar el script a un directorio que esté en el PATH (por ejemplo /usr/local/bin) para no tener que ir hasta el directorio en el que esté cada vez que queramos ejecutarlo. Lo único es que si hacemos esto, en donde pone file= hay que poner la ruta completa del archivo de la base de datos. Por ejemplo yo lo tengo así: file=/home/xzibit/Misc/Regnum/npcs.txt Cualquier duda que tengan, no duden en preguntarla. También agradecería cualquier otro comentario, sugerencia o "bug" que hayan podido encontrar. Un Saludo |
06-26-2007, 06:14 PM | #2 |
Pledge
Join Date: Jun 2007
Location: Syrtis
Posts: 45
|
¿Alguien lo ha probado? ¿Que tal?
|
06-26-2007, 06:19 PM | #3 | |
Duke
Join Date: Jan 2007
Posts: 3,939
|
Quote:
__________________
"Nunca un científico ha quemado a un religioso por afirmar a Dios sin pruebas". Manuel Toharia "uno empieza a darse cuenta que eso de no hacer ejercicio, comer y beber como si fuese la ultima cena y mantener la figura ya no existe...". Maryan |
|
06-26-2007, 06:27 PM | #4 |
Duke
Join Date: Jan 2007
Posts: 3,939
|
funciona!!! esta genial!!!
tengo que aprender a hacer estos scrips
__________________
"Nunca un científico ha quemado a un religioso por afirmar a Dios sin pruebas". Manuel Toharia "uno empieza a darse cuenta que eso de no hacer ejercicio, comer y beber como si fuese la ultima cena y mantener la figura ya no existe...". Maryan |
06-26-2007, 09:36 PM | #5 | |
Duke
Join Date: Nov 2006
Location: 0x00CAFE
Posts: 3,366
|
Quote:
ES GENIAL!!!!!!!!!!
__________________
I don't have a solution, but I admire the problem. |
|
06-26-2007, 11:38 PM | #6 | |
Baron
Join Date: Mar 2006
Posts: 609
|
Quote:
cosas que pasan
__________________
Daggy Alturian Tirador ---> PT For Ever
Laggy Alturian Barbaro ---> Even more PT |
|
06-27-2007, 01:51 AM | #7 |
Count
Join Date: Jan 2007
Location: Rosario
Posts: 1,440
|
conste que te dije, hagamos un cat db | grep npc
__________________
Usuario GNU/linux registrado Nº450915 "Sólo hay un problema con el sentido común: que no es demasiado común" -- Milt Bryce |
06-27-2007, 03:10 AM | #8 | |
Duke
Join Date: Nov 2006
Location: 0x00CAFE
Posts: 3,366
|
Quote:
Pero no es multiplataforma...
__________________
I don't have a solution, but I admire the problem. |
|
06-27-2007, 04:28 AM | #9 |
Count
Join Date: Jan 2007
Location: Rosario
Posts: 1,440
|
y bue, pero desde windows se pueden instalar cygwin ^^ y los que usan BeOS que se jodan no creo que les corra el RO ademas :-P
un scrip de bash podria andar en cualquier *nix
__________________
Usuario GNU/linux registrado Nº450915 "Sólo hay un problema con el sentido común: que no es demasiado común" -- Milt Bryce |
06-29-2007, 03:09 PM | #10 | |
Pledge
Join Date: Jun 2007
Location: Syrtis
Posts: 45
|
Me alegro de que os haya gustado el script!!
Quote:
EDITO: Una buena guía de introducción para hacer scripts en bash: http://xinfo.sourceforge.net/documen...cript-2.0.html |
|
Thread Tools | |
Display Modes | |
|
|