Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Eleкtro en 7 Diciembre 2011, 03:14 am



Título: (Solucionado) [BATCH] Problema usando SED.exe
Publicado por: Eleкtro en 7 Diciembre 2011, 03:14 am
Hola, tengo este archivo de texto


Código:
** Caption Number 5
*PopOn
*T 00:00:07:78
*BottomUp
*Lf01
Titulo : Viento de Tormenta

** Caption Number 6
*PopOn
*T 00:00:08:31
*BottomUp
*Lf01


Y lo que intento es borrar todas las lineas que empiezan con el signo * ¿Como puedo hacerlo?

He intentado esto pero no borra la linea entera:
Código
  1. SED.EXE "/*/ s/*//Ig" C:\2.txt > C:\3.txt

y tambien he probado esto:
Código
  1. SED.EXE "/*/ s/*//Ig" "--line-length=0" C:\2.txt > C:\3.txt


Título: Re: [BATCH] Problema usando SED.exe
Publicado por: leogtz en 7 Diciembre 2011, 04:46 am
Prueba con:
Código:
type file.txt | sed "/^*/d"
Titulo : Viento de Tormenta


Título: Re: [BATCH] Problema usando SED.exe
Publicado por: Eleкtro en 7 Diciembre 2011, 05:19 am
Muxas Gracias Leo funciona, justo antes de leer tu respuesta estaba probando: sed -e "/*/d" 1.txt>2.txt y parece que hace lo mismo xD

Pero ahora tengo otro problema...

En estas lineas por ejemplo:
Código:
 [02:26.00]me estoy dando rienda suelta,  
 [02:29.18]no se los cuentes a nadie.  
 [02:32.19][02:58.66]Por mas que me invento,  
 [02:34.81][03:00.13]nadie se cree mis cuentos  

¿Como hago para borrar SOLO los números y los caracteres?...

He intentado usar SED así: [**:**.**] pero me borra la linea entera :/

También he pensado en hacerlo con un for... pero claro, en las 2 primeras lineas hay una celda, y en las últimas 2 lineas son 2 celdas de números así que... esto no me funciona:

Código
  1. @echo off
  2. For /F "tokens=1,* delims=]" %%a in ('Type "1.txt"') do (echo. %%b >> 2.txt)



EDITO: bueno yo creo que con un FOR si que se podria (¿Un FOR al revés?), o suando SED no se... aqui está el texto original por si sirve de algo:

[49][68]Artista: Estopa
[68][77]Álbum: Allenrok
[77][83]Titulo : Viento de Tormenta
[83][312][00:42.16][00:54.47][01:04.79][01:10.90][01:23.93][01:36.41][01:43.12][02:01.62][02:08.86][02:17.88][02:30.89][02:43.51][02:57.31][03:09.11]
[312][347]Cuando decido cambiar de actitud,
[347][372]cuando no hay nada que me salga bien.
[372][395]Cuando me creo cualquier espejismo
[395][432]hablo conmigo mismo y vuelvo a caer.
[432][460]Cuando los besos saben a verdad,
[460][491]cuando lo que quiero es querer creer
[491][513]Cuando asfalto mis ojos de alquitrán
[513][551]que en el cielo no dan casitas de alquiler.
[551][576]Cuando me enfrento a mis tormentos,
[576][597]siempre a merced del viento,
[597][651]me pongo y me siento lejos...lejos.
[651][666][02:11.27]Me muerde cada remordimiento,
[666][687][02:13.50]se nota que estoy dando rienda
[687][714][02:15.72]suelta a mis demonios.
[714][772][02:20.53]Corren fuertes vientos de tormenta,
[772][790][02:24.15]como no vivo del aire,
[790][822][02:26.00]me estoy dando rienda suelta,
[822][852][02:29.18]no se los cuentes a nadie.
[852][879][02:32.19][02:58.66]Por mas que me invento,
[879][899][02:34.81][03:00.13]nadie se cree mis cuentos
[899][923][02:36.75][03:01.88]y no me cuadran las cuentas,
[923][942][02:39.28][03:04.35]me buscas y no te encuentro,
[942][985][02:41.12][03:06.32]y si no te busco, me encuentras.
[985][1011]Cuando quiero quedarme un poco más,
[1011][1041]siempre con una pregunta: ¿qué hacer?
[1041][1063]Cuando me arrastro entre la oscuridad,
[1063][1101]y todo el mundo se va, me piro yo también.
[1101][1131]Cuando me quedo fuera de lugar,
[1131][1160]cuando no me apetece aun volver,
[1160][1184]me cuesta tanto mantener el rumbo
[1184][1222]en este mar profundo, me quiero perder...
[1222][1246]Mis peores temores y miedos,
[1246][1266]se apagan como se apaga
[1266][1661]esta noche al compás del tiempo.
[1661][1702]Esto no es un simulacro, repito,
[1702][1727]esto no es un simulacro,
[1727][1939]no lo es, ¡esto es Estopa!
[1939][1959]Angel Ayach


Título: Re: [BATCH] Problema usando SED.exe
Publicado por: Eleкtro en 7 Diciembre 2011, 05:58 am
ya está, lo he conseguido haciendo un for, dejo el code aqui

Un saludo!


Código
  1. @echo off
  2.  
  3. For /F "tokens=1,2,* delims=]" %%a in ('Type "5.txt"') do (
  4. Set "linea=%%c"
  5. Call :Edit
  6. )
  7.  
  8.  
  9.  
  10. :Edit
  11. Echo "%linea%" | find "]"
  12. if %errorlevel% equ 1 (
  13. Echo  %Linea%>>good.txt
  14. Goto :EOF
  15. ) ELSE  (
  16. Set linea=%linea:~10%
  17. Goto :Edit
  18. )


:Resultado

 Artista: Estopa
 Álbum: Allenrok
 Titulo : Viento de Tormenta
 Cuando decido cambiar de actitud,
 cuando no hay nada que me salga bien.
 Cuando me creo cualquier espejismo
 hablo conmigo mismo y vuelvo a caer.
 Cuando los besos saben a verdad,
 cuando lo que quiero es querer creer
 Cuando asfalto mis ojos de alquitrán
 que en el cielo no dan casitas de alquiler.
 Cuando me enfrento a mis tormentos,
 siempre a merced del viento,
 me pongo y me siento lejos...lejos.
 Me muerde cada remordimiento,
 se nota que estoy dando rienda
 suelta a mis demonios.
 Corren fuertes vientos de tormenta,
 como no vivo del aire,
 me estoy dando rienda suelta,
 no se los cuentes a nadie.
 Por mas que me invento,
 nadie se cree mis cuentos
 y no me cuadran las cuentas,
 me buscas y no te encuentro,
 y si no te busco, me encuentras.
 Cuando quiero quedarme un poco más,
 siempre con una pregunta: ¿qué hacer?
 Cuando me arrastro entre la oscuridad,
 y todo el mundo se va, me piro yo también.
 Cuando me quedo fuera de lugar,
 cuando no me apetece aun volver,
 me cuesta tanto mantener el rumbo
 en este mar profundo, me quiero perder...
 Mis peores temores y miedos,
 se apagan como se apaga
 esta noche al compás del tiempo.
 Esto no es un simulacro, repito,
 esto no es un simulacro,
 no lo es, ¡esto es Estopa!
 Angel Ayach


Título: Re: (Solucionado) [BATCH] Problema usando SED.exe
Publicado por: leogtz en 7 Diciembre 2011, 16:37 pm
Prueba acortando el código con esto:

Código
  1. echo %linea% | find "]" && (
  2. echo %linea% >> good.txt
  3. goto:eof
  4. ) || (
  5. Set linea=%linea:~10%
  6. Goto :Edit
  7. )


Título: Re: (Solucionado) [BATCH] Problema usando SED.exe
Publicado por: Eleкtro en 7 Diciembre 2011, 17:06 pm
gracias de nuevo por tu ayuda!

un saludo