|
|
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 |
|
|