elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 06:47  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  Acciones sobre archivos de texto. [Batch]
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 Ir Abajo Respuesta Imprimir
Autor Tema: Acciones sobre archivos de texto. [Batch]  (Leído 54,309 veces)
darth1024

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #90 en: 6 Agosto 2010, 23:01 »

Gracias por tu respuesta Leo.

basicamente se trata de crear un nuevo txt a partir del archivo original. Este original contiene las "sesiones" de varios dias y yo por mi cuenta voy a filtrar que dia quiero generar.

Ejm:


ORIGINAL (veras que vienen 3 grupos de sesiones dos del dia 05/08 y una del 06/08)

Session : 2010/08/06-8
                                                                             
ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281097807
Object Status : Completed
=====================================================
drwxr-x---        256  04/08/2010 23:30:04 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_03/
drwxr-x---        256  05/08/2010 23:30:03 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_04/

Session : 2010/08/05-20
                                                                             
ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281051007
Object Status : Completed
=====================================================-rw-r----- 1214829568  05/08/2010 18:00:56 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/
-rw-r----- 1214404608  05/08/2010 18:00:59 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/

Session : 2010/08/05-7
                                                                             
ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281011407
Object Status : Completed
=====================================================-rw-r----- 1216808448  05/08/2010 07:06:08 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/
-rw-r----- 1213480960  05/08/2010 07:06:14 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/


RESULTADO (por ejm. solo quiero quedarme con los dos del 05/08)

Session : 2010/08/05-20
                                                                             
ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281051007
Object Status : Completed
=====================================================-rw-r----- 1214829568  05/08/2010 18:00:56 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/
-rw-r----- 1214404608  05/08/2010 18:00:59 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/

Session : 2010/08/05-7
                                                                             
ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281011407
Object Status : Completed
=====================================================-rw-r----- 1216808448  05/08/2010 07:06:08 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/
-rw-r----- 1213480960  05/08/2010 07:06:14 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/


Entiendes?, solo deseo las tramas pertenecientes al dia (sesion) que escogi (que vendria a ser la cabecera de cada pequeña trama).

Gracias por tu ayuda, Leo.



En línea
patorejo

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #91 en: 12 Agosto 2010, 06:46 »

muy buena informacion t la agradezco,debio costarte mucho trabajo pero qdo excelente ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)

lo que pasa es que no me qda muy claro el codigo para reemplazar una palabra de un txt

segun yo mas o menos va a asi
Código:
@echo off
(
echo 2<<<------------NUMERO DE LINEA A MODIFICAR
echo Gutierrez<<<<---------PALABRA Q SE VA A PONER EN VEZ DEL Q ESTABA EN LA SEGUNDA LINEA

) | edlin /b c:\TEXTO.txt<<<----------------RUTA DEL ARCHIVO QUE SE VA A MODIFICAR

pero no me funciona no me cambia la palabra,queda igual,es q quiero este codigo para ver si es posible hacer,por ejemplo si tengo en un texto por llamarlo "detelle.txt" y dentro de este txt tengo una linea que contiene  "ip=192.168.12.1"

lo q quiero saber es si es q se puede  cojer el valor de esa ip y ponerla en una variable por ejemplo qdaria "ip=a"(claro esta que "a=192.168.12.1"),y dicha variable  "a"  tome el valor  de otro txt llamado ips.txt.



txt 1--->detalle.txt
contiene:

codigo:255
registro:2333
nombre pc:25555
ip:192.168.12.1<<<----------------hacer que "ip=a" y que  "a" tome los valores del otro txt llamado "ips.txt" aleatoriamente


txt 2---->ips.txt
contiene:

125.251.32.1
145.21.23.5
147.28.6.2
123.214.36.4
125.253.24.26
12.36.25.58
89.25.41.65
41.25.36.41


 :-X :-X :-X no se sera posible hacer eso pero creo q con los conocimientos q ya tiens me podes guiar un poco a como hacerlo,de anemano t agradezco por la ayuda q ya me has brindado


« Última modificación: 12 Agosto 2010, 06:56 por patorejo » En línea
darth1024

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #92 en: 19 Agosto 2010, 12:18 »

Estimado Leo, no quiero molestarte pero tuviste oportunidad de revisar mi anterior mensaje, donde describia el formato final deseado?


Samuel.
En línea
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Moderador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #93 en: 19 Agosto 2010, 22:28 »

Estimado Leo, no quiero molestarte pero tuviste oportunidad de revisar mi anterior mensaje, donde describia el formato final deseado?


Samuel.

Sí, pero estaba ocupado y se me olvidó, mira lo resolví así.

Use sed para Windows, debes descargarlo, es gratis y te será  de utilidad.

Tomando el ejemplo de archivo que dejaste, este:


Código:
Session : 2010/08/06-8
                                                                             
ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281097807
Object Status : Completed
=====================================================
drwxr-x---        256  04/08/2010 23:30:04 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_03/
drwxr-x---        256  05/08/2010 23:30:03 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_04/

Session : 2010/08/05-20
                                                                             
ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281051007
Object Status : Completed
=====================================================-rw-r----- 1214829568  05/08/2010 18:00:56 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/
-rw-r----- 1214404608  05/08/2010 18:00:59 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/

Session : 2010/08/05-7
                                                                             
ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281011407
Object Status : Completed
=====================================================-rw-r----- 1216808448  05/08/2010 07:06:08 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/
-rw-r----- 1213480960  05/08/2010 07:06:14 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/

Y el siguiente código:
Código
@echo off
echo Sesiones en "file.txt" :
echo.
for /f "tokens=2* delims=/" %%a in ('type "file.txt" ^| findstr "^Sess.*"') do (
echo %%a/%%b
)
 
:menu
echo.
set /p "choice=Escriba el tipo de sesión que desea en el formato 08/05 : !!
if not defined choice (goto:menu)

rem Muestreo de datos:

set "choice=%choice:/=\/%"
rem Puedes usar redirección para obtener la salida del siguiente comando:
type "file.txt" | sed -n "/^Session : 2010\/\%choice%.*$/,/^$/p"
       set /p "=";
exit /b 0
 
 

Una prueba de ejecución:

Código:
C:\>code.bat
Sesiones en "file.txt" :

08/06-8
08/05-20
08/05-7

Escriba el tipo de sesi¾n que desea en el formato 08/05 : 08/05
Session : 2010/08/05-20

ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281051007
Object Status : Completed
=====================================================-rw-r----- 1214829568  05/08/2010 18:00:56 /
oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/
-rw-r----- 1214404608  05/08/2010 18:00:59 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/
2010_08_05/

Session : 2010/08/05-7

ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281011407
Object Status : Completed
=====================================================-rw-r----- 1216808448  05/08/2010 07:06:08 /
oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/
-rw-r----- 1213480960  05/08/2010 07:06:14 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/
2010_08_05/


C:\>code
Sesiones en "file.txt" :

08/06-8
08/05-20
08/05-7

Escriba el tipo de sesi¾n que desea en el formato 08/05 : 08/06
Session : 2010/08/06-8

ObjectName    : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck'
ObjectType    : FileSystem
DiskAgentID   : 1281097807
Object Status : Completed
=====================================================
drwxr-x---        256  04/08/2010 23:30:04 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/
2010_08_03/
drwxr-x---        256  05/08/2010 23:30:03 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/
2010_08_04/

C:\>

Saludos.
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
WiZZard

Desconectado Desconectado

Mensajes: 84


Puum!!


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #94 en: 22 Agosto 2010, 05:38 »


Excelente manual, se merece chincheta!!   ;-)
En línea

"Aprender sin pensar es inútil. Pensar sin aprender, peligroso."
Confucio

mi BLOG

"El éxito es aprender a ir de fracaso en fracaso sin perder el entusiasmo."
Winston Churchill
darth1024

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #95 en: 25 Agosto 2010, 08:40 »

Estimado Leo, en verdad es Ud. un Genio!!, muchas gracias por tu apoyo.

Voy a buscar el "sed" para windows y lo pruebo pero a simple vista se ve formidable tu solución. :D

Gracias. ;-)


Darth1024
En línea
Hekaly

Desconectado Desconectado

Mensajes: 51



Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #96 en: 28 Agosto 2010, 12:55 »

Buenas. Tengo una duda para extraer cierta información de un archivo .txt pero no me sale y ya he probado de mil maneras.

Una de las parte que tiene el script que estoy creando es para sacar automaticamente el número de paginas que tiene un capitulo de un manga. Bien ya he encontrado en que parte está del código pero no consigo extraerlo en una variable.

Las herramientas que uso son las versiones Windows de "lynx" (para guardar el codigo de la web en un txt) y "cut" para extraer trozos de un string.

Bien cuando uso lynx para guarda la web se guarda esto en el txt.

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"><html<head><meta http-equiv="Content-Type" content="
text/html;charset=utf-8"/><title>Swot 8 (HQ) &mdash; IchiNoFansub &mdash; submanga.com</title><base href="http://submanga.com/"/><link rel="shortcut icon"
 href="http://submanga.com/static/images/favicon.gif"/></head><frameset style="background:#000" width="100%" height="100%" frameborder="0" framespacing="0"
 noresize rows="*"><frame style="background:#000;" width="auto" height="auto" id="manga" scrolling="auto" frameborder="0" framespacing="0" src="
./leer?mode=abajo&n=1&m=20&c=8&s=Swot&f=IchiNoFansub&id=85963"/></frameset></html>

* Todo es en una linea, lo he partido para que la linea no salga de los bordes del foro.

El numero de paginas que tiene un capitulo se encuntra al final del archivo.

Código:
./leer?mode=abajo&n=1&m=20&c=8&s=Swot&f=IchiNoFansub&id=85963"

El numero de paginas de cualquier capitulo esta donde pone "20" y es lo que quiero extraer para guardarlo en una variable.

Hasta aqui todo perfecto pero he probado con cut -c columnas > txt, cut -d -f > txt, pero nada, no me muestra mas que style="background:#000;"

He estado investigando y si tengo el archivo en rtf y lo guardo como unicode si he podido extraerlo, pero no se guardar archivos unicode desde la terminal, he probado con "cmd /u /c lynx ....... > archivo.txt" y nada.

Sabriais alguna forma de extraer el numero, hay algun parametro de find o findstr que simule cut -c y extraer el número.

 Muchas gracias por la respuesta.
En línea

Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Moderador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #97 en: 28 Agosto 2010, 21:53 »

Eso se hace facilmente con FOR, cuando tenga tiempo doy una respuesta.
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Hekaly

Desconectado Desconectado

Mensajes: 51



Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #98 en: 30 Agosto 2010, 00:35 »

Muchas gracias Leo, esperaré con ansias la respuesta.
En línea

flony

Desconectado Desconectado

Mensajes: 292



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #99 en: 30 Agosto 2010, 17:58 »

leo una opcion seria con extraccion de caracteres siempre que tenga la misma longitud y los archivos de manga no supere los 100  :laugh:
Código:
<"manga.txt" set /p "a="
set "a"
set var=%a:~630,2%
echo %var%
pause
« Última modificación: 30 Agosto 2010, 17:59 por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Hekaly

Desconectado Desconectado

Mensajes: 51



Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #100 en: 30 Agosto 2010, 18:42 »

Hola flony, gracias por responder.

Ya pense en algo parecido al codigo que has puesto, meter en una variable el archivo (ya que es todo una sola linea) y luego extraer el numero correspondiente.

Pero al intentar introducir el texto del archivo en una variable:

Código:
<"manga.txt" set /p "a="

Y hacer el corerspondiente echo dice lo siguiente: "No se esperaba < en este momento"

Eso debe ser que hay caracteres de redireccion (< y >) y por eso no me funciona bien. Pero aun asi probare el codigo que has puesto.
En línea

flony

Desconectado Desconectado

Mensajes: 292



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #101 en: 30 Agosto 2010, 20:19 »

fijate no es de genio  :P esta en el tutorial de leo aca en esta pagina...como introducir un renglon como variable...pero bue con un for seria mas seguro por las dudas tenga mas de 100 capitulos
« Última modificación: 30 Agosto 2010, 20:22 por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
BlacKGilgamesH

Desconectado Desconectado

Mensajes: 28


¿¿Por qué la gente aprecia más un post estupido??


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #102 en: 30 Agosto 2010, 22:45 »

Hola flony, gracias por responder.

Ya pense en algo parecido al codigo que has puesto, meter en una variable el archivo (ya que es todo una sola linea) y luego extraer el numero correspondiente.

Pero al intentar introducir el texto del archivo en una variable:

Código:
<"manga.txt" set /p "a="

Y hacer el corerspondiente echo dice lo siguiente: "No se esperaba < en este momento"

Eso debe ser que hay caracteres de redireccion (< y >) y por eso no me funciona bien. Pero aun asi probare el codigo que has puesto.


Para poner el archivo de texto en la variable se haria asi:

Código:
for /f %%a in (archivo.txt) do (
set arch=%%a
)
echo %arch%
pause>nul

Saludos
En línea

Hekaly

Desconectado Desconectado

Mensajes: 51



Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #103 en: 1 Septiembre 2010, 02:10 »

Buenas a todos. Ya he encontrado una forma de hacerlo, puede que no la mas facil o mas corta pero si es valida.

Como tengo varios comandos linux para windows he estado pensando y he usado el comando awk.

Así poniendo

Código:
awk "{print $38}" manga.txt | cut -d "=" -f 5 | cut -d "&" -f 1

Lo malo de esto seria que solo funcionaria si la linea fuera de la misma longitud pero para solucionarlo uso el comando wc (tambien para version windows)

Código:
wc -w manga.txt | awk "{print $1}"

Saca el numero de palabras, siendo este numero el que se nesesita para el awk de arriba y asi sacar el susodicho numero.

« Última modificación: 1 Septiembre 2010, 02:18 por Hekaly » En línea

flony

Desconectado Desconectado

Mensajes: 292



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #104 en: 9 Noviembre 2010, 19:37 »

hola leo hay una pregunta que siempre me hago y es que el delims en for delimita "hasta ahi" y me pregunto hay una forma de si yo se el limite saber "despues de" ese limite...ojala haya quedado claro la pregunta  :silbar:
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines