数百万行のテキスト ファイルがあります。文字列を含む文字列の前のすべてのテキストを削除したいです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