Entfernen Sie Text vor bestimmten Zeichenfolgen, einschließlich der Zeichenfolge, mithilfe eines Batch-Befehls

Entfernen Sie Text vor bestimmten Zeichenfolgen, einschließlich der Zeichenfolge, mithilfe eines Batch-Befehls

Ich habe eine Textdatei mit Millionen von Zeilen. Ich möchte den gesamten Text vor einer Zeichenfolge test:einschließlich Zeichenfolge entfernen. Außerdem möchte ich Text nach Leerzeichen entfernen.

Einige Inhalte aus der Datei:

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

Gewünschte Ausgabe:

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

Ich habe den unten stehenden Code, der Text /aus der Datei entfernt und auch die Zeile in der Befehlszeile widerspiegelt echo.

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

Ich möchte den obigen Code ändern, um die oben genannte gewünschte Ausgabe zu erhalten. Aber ohne Zeilen auf cmd zu drucken, da dies viel Zeit in Anspruch nimmt.

Antwort1

Hier ist Ihr Befehl:

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

oder wenn Sie die Originaldatei ändern können:

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

Update: Mir ist nicht aufgefallen, dass die Frage für die Windows-Plattform war. Es gibt jedoch auch sed für Windows, das auf verschiedene Arten installiert werden kann:

https://stackoverflow.com/questions/127318/gibt es ein sed-ähnliches Dienstprogramm für cmd-exe?

verwandte Informationen