Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Gokuman en 9 Marzo 2015, 22:04 pm



Título: Delimitadores consecutivos
Publicado por: Gokuman en 9 Marzo 2015, 22:04 pm
Hola amigos tengo un archivo de texto de como este ejemplo
Código:
SG-2013||BLABLA|ASDF|2|1234|||A
SG-2013|2015|BLABLA|INMOVILIZACION|FDSA|2|4321|||A

Quiero extraer 2 columnas de este y guardarlo en otro archivo de texto
es decir que la salida sea algo parecido a esto
Código:
BLABLA|1234
BLABLA|4321

He intentado con un FOR para extraer las columnas, pero al tener delimitadores consecutivos no los detecta,
Código:
for /F "tokens=3,7 delims=|" %%a in (desc/actual.txt) do (
  echo %%a
)


Título: Re: Delimitadores consecutivos
Publicado por: explorer en 11 Marzo 2015, 15:53 pm
Yo creo que el ejemplo está mal, porque los campos que quieres extraer están en las columnas 6 y 7. Yo creo que la primera línea está mal.

Si se trata de las columnas 3 y 7, se puede resolver en una sola línea de comandos:

Código
  1. perl -anF'\|' -E 'say join "|", @F[2,6]' archivo.txt > resultado.txt


Título: Re: Delimitadores consecutivos
Publicado por: FranciskoAsdf en 14 Marzo 2015, 04:03 am
no entiendo que haces con esta parte del codigo "(desc/actual.txt)" xD. En vez de eso tienes que "tipear" el txt completo para buscar un string en el mismo.

Mira el ejemplo de mas abajo y ve si te puede ayudar en algo.

Código
  1.  
  2. FOR /F "Tokens=3,7 Delims=|" %%M IN ('Type actual.txt ^|Find.exe /I "BLABLABLA"') DO (
  3. Echo %%M >> Salida.txt
  4. )
  5. )
  6.  
  7.  

Espero te sirva, recuerda que es un ejemplo y puede que no te funcione directamente.


Sauludos!!