Elimine el texto antes de cierta cadena, incluida la cadena, mediante el comando por lotes

Elimine el texto antes de cierta cadena, incluida la cadena, mediante el comando por lotes

Tengo un archivo de texto que tiene millones de líneas. Quiero eliminar todo el texto antes de una cadena, test:incluida una cadena. También quiero eliminar el texto después del espacio.

Algunos contenidos del archivo:

file1:test:src/draw/no/ind/erefe.c/gegegewg 1
filesdsd:test:src/draw/no/ind/reryeryrey.c/jhrtjtrj 1
fileskdk:sdsD:test:abc/disp/no/ind/ryretyrey.txt/Display::Restrict 20

Salida deseada:

src/draw/no/ind/erefe.c/gegegewg
src/draw/no/ind/reryeryrey.c/jhrtjtrj
abc/disp/no/ind/ryretyrey.txt/Display::Restrict

Tengo el siguiente código que elimina el texto posterior /del archivo y también repite la línea en la línea de comando tal como está echo.

for /f "tokens=1 delims=/" %a in (abc.txt) do (echo %a >> newfile.txt)

Quiero modificar el código anterior para obtener el resultado deseado mencionado anteriormente. Pero sin imprimir líneas en cmd ya que lleva mucho tiempo.

Respuesta1

Ahí está tu comando:

cut -d " " -f1 file.txt | sed -e '1,$s/^\(.*\):test:\(.*\)$/\2/' > new_file.txt

o si puedes modificar el archivo original:

sed -i '1,$s/^\(.*\):test:\(.*\) .*$/\2/' file.txt

Actualización: no me he dado cuenta de que la pregunta era para la plataforma Windows. Sin embargo, también existe sed para Windows, que se puede instalar de varias maneras:

https://stackoverflow.com/questions/127318/is-there-any-sed-like-utility-for-cmd-exe

información relacionada