使用批处理命令删除某些字符串之前的文本(包括字符串)

使用批处理命令删除某些字符串之前的文本(包括字符串)

我有一个包含数百万行的文本文件。我想删除字符串之前的所有文本(test:包括字符串)。还想删除空格后的文本。

文件中的一些内容:

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

期望输出:

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

我有下面的代码,它/从文件中删除文本,并在命令行上回显行echo

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

我想修改上述代码以获得上述所需的输出。但不要在 cmd 上打印行,因为这会花费很多时间。

答案1

这是你的命令:

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

或者你可以修改原始文件:

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

更新:我没有注意到问题是针对 Windows 平台的。但是也有适用于 Windows 的 sed,可以通过多种方式安装:

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

相关内容