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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Scripting / Re: Script para buscar datos en un .txt en: 14 Enero 2015, 16:16 pm
Lo que comenta vk496 es que se puede formatear de forma sencilla usando awk.
He hecho varias pruebas y esto es lo que he sacado con awk.
Debes tener en cuenta el tamaño máximo de cada valor de la tabla. Asi pues yo he deducido al alza que el nombre no debería exceder los 35 caracteres, el domicilio los 35 caracteres me parece tb bien, el teléfono unos 9 o 10 caracteres por si las moscas le puse 12 y el etc a saber, te toca a ti.
Intenta mirar otros tipos de resultados dependiendo de tus valores en el csv.

Usando el comando awk como
Código
  1. head -n1 entrada.csv|awk -F, '{printf "%-35s\t%-35s\t%-10s\t%-35s\n",  $1, $2, $3, $4}'|sed "s/\"//g"

En este caso cogemos la primera linea del archivo entrada.csv y se lo pasamos a awk que detecta la separación de las comas con -F, y luego imprime las 4 primeras columnas de la forma en la que le dice el printf. El primero %-35s significa que pilla $1 y lo usa como string y le pone al final los necesarios espacios hasta llegar a 35 caracteres. Si se excede pues no pone nada.
El resto de parámetros es lo mismo. El único problema es que necesitas una pantalla grandecita para poder ver contenido real. Un nombre puede ser muy largo y no solo un "asds".
Luego el sed quita los ".

asi que en general creo que se puede usar algo como:
Código
  1. head -n1 entrada.csv|awk -F, '{printf "%-35s\t%-35s\t%-10s\t%-35s\n",  $1, $2, $3, $4}'|sed "s/\"//g"
  2. grep $dat $txt|awk -F, '{printf "%-35s\t%-35s\t%-10s\t%-35s\n",  $1, $2, $3, $4}'|sed "s/\"//g"

Supongo que ajustarlo es cosa tuya.
2  Seguridad Informática / Seguridad / Re: Duda: ¿cómo eliminar el virus Regular Deals? en: 14 Enero 2015, 15:07 pm
Pues en principio si es una extensión de chrome entonces debes ir a las extensiones y borrar las que no te interesan.
Entras en la dirección chrome://extensions/ y quitas las extensiones que no quieras. Entra en chrome://plugins/ por si acaso se hubiese instalado ahí aun que lo dudo.

Luego entras en http://live.sysinternals.com/ y te descargas:
autoruns.exe
procexp.exe
y por las risas
portmon.exe

Antes de entrar a saco entra en el Panel de Control de windows y en el apartado de programas y busca alguno que no sea normal en tu ordenador y elimínalo.

Cierras chrome y cualquier otro programa que tengas abierto y ejecutas procexp.exe.
Es un administrador de tareas pero avanzado. Juega lo que quieras con el. Busca programas en la parte de abajo(la zona de color azul la del usuario) que contengan programas "extraños"
Puedes abrir alguna pestaña de arriba para verificar los ejecutables y hasta subirlos a virustotal para determinar si son detectados por los antivirus. Cuidado que suelen dar a veces falsos positivos. Hay que usar la sesera.
Luego si lo localizas la tarea extraña le das a botón secundario y le das a jump to dir o algo asi.
Terminas la tarea y eliminas el ejecutable del mismo nombre.

Luego abres el autoruns.exe y deshabilitas la entrada en la que se inicia al encender el ordenador si existiese.

Y entre medio pues portmon.exe es como un netstat pero visual y mucho mas intuitivo. Supongo que podrás hacer cosas chulas con el.

Un saludo! y Suerto matando al bichejo!
3  Programación / Scripting / Re: Script para buscar datos en un .txt en: 14 Enero 2015, 14:26 pm
Si tienes un XLS o un XLSX puedes guardarlo como un CSV (Coma Separated Values).
Básicamente es un archivo de texto en el que separa los valores con comas y las filas por lineas en el archivo.
Asegúrate que se guarda como UTF-8 y con los saltos de linea de linux. Si no fuese así ábrelo en tu editor de texto favorito y guárdalo como tal.

El grep a mi me da justo lo que pones en la tabla. Lo mas probable es que fuese problema de los saltos de linea que comenté antes.

Para intercambiar las "," por \t con un sed es bastante sencillo de hacer.
La primera fila se puede sacar con un head -n1 archivo.csv y aplicarle un sed como antes.

Yo interpreto la entrada como:
entrada.csv:
Código:
"NOMBRE","DOMICILIO","TELEFONO","ETC"
"señor x","calle falsa 123",7578592945,"rg"
"señora y","calle hola 456",135068345358,"ryr"
"señ z y","calle sdfa 456",1353453358,"rsdfsdfr"
"seaaa x a e","calsgfdgh hola 456",135068358,"rqasdyr"

El código en bash editando un pelin el tuyo me quedará como
Código
  1. #!/bin/bash
  2. #Este es una prueba de un script para buscar datos en una lista
  3. #escrita en un archivo de texto...
  4. clear
  5. txt="entrada.csv"
  6. #read -p "Indique el archivo a analizar..." txt
  7. echo Usted ha indicado el fichero $txt ...
  8.  
  9. #read -p "Que desea buscar en el fichero? " dat
  10. dat="x"
  11. echo "Procediendo a buscar $dat en $txt"
  12. head -n1 $txt |sed "s/,/\t/g"|sed "s/\"//g"
  13. grep $dat $txt|sed "s/,/\t/g"

Solo he editado las entradas un pelin, agregado los sed y el head.

El primer problema que le encuentro a mi script es que depende mucho del tamaño de los campos de texto y lo mas probable es que aparezcan en columnas distintas y el texto se mueva de su "sitio". Así que se necesitaría hacer de alguna forma dinámica la colocación de las tabulaciones. Pero ahora no tengo mucho tiempo para ello.

Quizá lo he entendido todo mal! jeje espero almenos haber ayudado en algo! ^^.
Un saludo
4  Programación / Scripting / Re: una variable se puede invocar cuantas veces? en: 14 Enero 2015, 12:01 pm
Depende de como se llame a la variable o donde se guarde.

Interpreto que tienes varios bat's pongamos
bat1.bat
bat2.bat
bat3.bat

Interpreto que una variable se usa en el bat1.bat y la ejecución de bat1.bat termina sin guardar esa variable en ningún lugar. Luego se ejecuta bat2.bat. En ese caso ningún bat posterior puede usar esa variable ya que todas esas variables son exclusivas de bat1.bat a menos que las guardes de forma permanente en alguna variable de entorno o en un archivo que después invocas en los siguientes bat's.

TL;DR:
Por lo que la respuesta corta a tu pregunta es: Las variables inicializadas en bat1.bat solo se pueden usar en bat1.bat a menos que guardes las variables en variables externas o archivos externos.
5  Programación / Scripting / Re: Mover a otra carpeta y usar una archivo por orden de menor a mayor con BATCH en: 14 Enero 2015, 11:37 am
Pues ni idea de si funciona el código siguiente al que he llegado. Estoy bajo Linux y no tengo ninguna forma de probarlo en windows. Probablemente tenga errores de comillado u otras cosas pero la estructura debería ser algo como lo que pongo al final.

La idea es mantener un registro en un archivo separado que guarda el número de capitulo por el vamos. He dado por sentando que no hay capítulos que se saltan números, si existiesen deberías agregar algún tipo de comprobación.

Asi que si tiene errores deberás encontrarlos y arreglarlos tu mismo.

Un saludo.

Código
  1. @echo off
  2.  
  3. cd /D E:\series\SERIES1
  4.  
  5. IF NOT EXIST Actual.txt (
  6. echo "Iniciando... Creando archivo de Posicion."
  7. echo "0" >Actual.txt
  8. ) ELSE (
  9. rem Creamos el archivo Actual.txt en el que contiene el capitulo actual
  10. SET /P actual_n= < Actual.txt
  11. )
  12. rem Recoge el valor numerico le pone 5 ceros y recoge los ultimos 3 dijitos
  13. rem Asi siempre tenemos el mismo numero de digitos con ceros al inicio.
  14. set actual=00000%actual_n%
  15. set actual=%actual:~-3%
  16.  
  17. rem Si no existe la carpeta de emitidas la creamos
  18. IF NOT EXIST SERIES1_EMITIDAS (
  19. echo "Creando carpeta de emitidas"
  20. md SERIES1_EMITIDAS
  21. )
  22. rem Movemos el capitulo actual a la carpeta de emitidos
  23. move Capitulo_%actual% SERIES1_EEMITIDAS\
  24. cd SERIES1_EEMITIDAS
  25.  
  26. rem Ejecutamos winamp o agregamos a la lista de reproduccion actual el capitulo
  27. rem actual que queremos ver.
  28. %PROGRAMFILES(X86)%\Winamp\winamp.exe /ADD Capitulo_%actual%
  29.  
  30. rem Salimos de la carpeta emitidas, incrementamos el valor de nuestro capitulo
  31. rem y lo sobreescribimos en el archivo que contiene el numero de capitulo siguiente
  32. cd ..
  33. SET /A "sigueinte=actual_n+1"
  34. echo %siguiente% >Actual.txt
  35.  
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines