我有一個有數百萬行的文字檔。我想刪除字串之前的所有文本,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