Cómo extraer una cadena de la última línea en un archivo de texto -windows script por lotes

0

Tengo un archivo .txt en este formato

123|abc|23456
234|rsty|68589
890|gfyu|5679
TRAILER|3|

¿Cómo extraigo "3" de la última línea entre "TRAILER |" y "3"? Necesitas ayuda.

Novice
fuente
1
¿Es esto una tarea única? Si no, ¿siempre hay 4 líneas en el archivo?
DavidPostill

Respuestas:

2

Si siempre hay 4 líneas como se muestra con "TRAILER" en la última línea:

for /f "skip=3 tokens=2 delims=|" %l in (List.txt) do @echo %l

Si puede haber cualquier número de líneas con la línea "TRAILER" presente en cualquier lugar:

for /f "tokens=2 delims=|" %l in ('type List.txt ^| find "TRAILER"') do @echo %l

for /? te enseñará lo que el omitir , tokens y delimita Las opciones significan, aunque no debería ser difícil de entender. También recuerde doblar cada signo de% mientras usa los comandos en un archivo por lotes.

Karan
fuente
Jeje Estaba esperando una respuesta a mi comentario antes de responder, por lo que me dio una paliza;)
DavidPostill
@DavidPostill: Sabía que usted también tendría una respuesta lista. :) De todos modos, traté de cubrir los escenarios en los que podía pensar, pero quién sabe, el OP podría volver con un conjunto de requisitos completamente diferente.
Karan
0

Como alternativa a la respuesta ya dada, se podría instalar. Gnu en Windows y hacer

tail -n 1 <your file here> | awk -F"|" "{print $2;}"
Atafar
fuente