Delimitadores consecutivos

Iniciado por Gokuman, 9 Marzo 2015, 22:04 PM

0 Miembros y 1 Visitante están viendo este tema.

Gokuman

Hola amigos tengo un archivo de texto de como este ejemplo
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
BLABLA|1234
BLABLA|4321


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

explorer

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 (bash) [Seleccionar]
perl -anF'\|' -E 'say join "|", @F[2,6]' archivo.txt > resultado.txt

FranciskoAsdf

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 (dos) [Seleccionar]


FOR /F "Tokens=3,7 Delims=|" %%M IN ('Type actual.txt ^|Find.exe /I "BLABLABLA"') DO (
Echo %%M >> Salida.txt
)
)



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


Sauludos!!
Asdf debería ser algún tipo de función.