Eu tenho um arquivo de texto que possui milhões de linhas. Quero remover todo o texto antes de uma string, test:
incluindo string. Também quero remover o texto após o espaço.
Algum conteúdo do arquivo:
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
Saída desejada:
src/draw/no/ind/erefe.c/gegegewg
src/draw/no/ind/reryeryrey.c/jhrtjtrj
abc/disp/no/ind/ryretyrey.txt/Display::Restrict
Eu tenho o código abaixo que remove o texto /
do arquivo e também ecoa a linha na linha de comando como está echo
.
for /f "tokens=1 delims=/" %a in (abc.txt) do (echo %a >> newfile.txt)
Quero modificar o código acima para obter a saída desejada mencionada acima. Mas sem imprimir linhas no cmd, pois leva muito tempo.
Responder1
Aí está o seu comando:
cut -d " " -f1 file.txt | sed -e '1,$s/^\(.*\):test:\(.*\)$/\2/' > new_file.txt
ou se você pode modificar o arquivo original:
sed -i '1,$s/^\(.*\):test:\(.*\) .*$/\2/' file.txt
Atualização: não percebi que a pergunta era para a plataforma Windows. No entanto, também existe o sed para Windows, que pode ser instalado de várias maneiras:
https://stackoverflow.com/questions/127318/is-there-any-sed-like-utility-for-cmd-exe