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