2017-06-01 3 views
1

Gibt es eine Möglichkeit, alle Textzeilen mit Ant in einer Textdatei nach einem bestimmten Schlüsselwort zu löschen? - nach dem ersten Auftreten des Schlüsselworts. BeispielAnt alle Zeilen aus der Textdatei nach einem bestimmten Schlüsselwort löschen

Line1 
Line2 
Line3 
Line4 
Line5 
..... 
Line1000 

Ich will alles löschen, die in dieser Datei ist, die nach dem „Line3“ Schlüsselwort ist außer dieser Linie.

+0

Vielleicht [Replace Task] (https://ant.apache.org/manual/Tasks/replace.html) kann die Dateien ändern; Übrigens ist die Datei auf einem Remote-Server oder lokal? – user75ponic

+0

Werfen Sie einen Blick auf [diese] (https://stackoverflow.com/questions/3754438/using-ant-to-edit-append-data-to-a-text-file) – user75ponic

+0

ist eine lokale Textdatei – DanutClapa

Antwort

1

Ant replaceregexp Aufgabe damit umgehen kann ziemlich leicht:

<replaceregexp 
    file="input.txt" 
    match="(.*Line3).*" 
    replace="\1" 
    flags="s" 
/> 

Kurze Erklärung: Die RegexMuster fängt alles bis einschließlich „Line3“ in einer Gruppe, setzt sich dann der Eingang, den Rest entsprechen. Die Ersetzung besteht nur aus der erfassten Gruppe und löscht effektiv den Teil, den Sie nicht möchten. Das Flag s ist eingeschaltet, sodass Zeilenumbrüche mit dem Platzhalter . übereinstimmen.

Verwandte Themen