2016-06-20 10 views
0

Ich habe ein Ant-Skript und ein SQL-Skript. Das Ant-Skript lässt das SQL-Skript für die Datenbank laufen und generiert eine .txt Datei mit mehreren Zeilen. Die .txt Datei enthält Werte wie:So entfernen Sie ein Komma aus einer TXT-Datei mit einem Ant-Skript

'value1', 
'value2', 
'value3', 
. 
. 
'valueN', 

Ich möchte das Komma in der letzten Zeile entfernen. Gibt es einen Ant-Befehl, mit dem ich dies erreichen kann?

: Ich bin sowohl Ant und SQL

+0

@AIBlue hilft: Es ist ein Akronym für ‚Another Ordentlich Tool‘. Deshalb habe ich es so geschrieben. – san

Antwort

0

Verwenden Sie einfach Ant replaceregexp task, F. E. :

<replaceregexp 
    match=",[^,]*$" 
    replace="" 
    file="${temp.dir}/file.txt" 
/> 

Das RegexMuster sucht nach dem letzten ''
- EDIT - nach Kommentar
Einfach den <replaceregexp> Schnipsel nach den <sqlexecquiet> der Ihrer Ausgabedatei erzeugt, Sie das Snippet angepasst benötigt:

<target name="runquery" depends="initialize"> 

    <sqlexecquiet 
     driver="${jd.driver}" 
     url="${database.url}" 
     userid="${database.user}" 
     password="${database.password}" 
     delimiter="go" 
     coldelimiter=";" 
     print="yes" 
     showheaders="true" 
     onerror="continue" 
     output="${temp.dir}/file.txt" 
     > 

     <replaceregexp 
     match=",[^,]*$" 
     replace="" 
     file="${temp.dir}/file.txt" 
     /> 

</target> 
+0

Danke für Ihre Antwort. Aber wenn ich das von Ihnen vorgeschlagene Skript zu meinem ANT-Skript hinzufüge, wird ein Fehler angezeigt. Hier ist das Skript, mit dem die SQL-Abfrage die TXT-Datei generiert. Können Sie mir bitte empfehlen, wo das Skript hinzufügen, die Sie erwähnt san

+0

@san siehe meine Bearbeitung, erweiterte die Antwort. – Rebse

+0

Es gibt den folgenden Fehler zurück: ** Der -Typ unterstützt das verschachtelte Element "file" nicht. ** – san

0

Sie hinzufügen können folgende <replaceregexp> Aufgabe am Ende des Build xml es

<replaceregexp file="${temp.dir}/yourfile.txt" 
       match=",([^,]*)$" 
       replace="" 
/> 

Hoffnung zu entfernen diese

+0

Es ist falsch, mit dieser Regex byline = "true" zu verwenden, weil dadurch alle "," aus der Datei entfernt werden. Außerdem wiederholst du einfach meine Antwort. – Rebse

+0

Ups .. mein Fehler .. danke für das Hinweis :) – Sanjeev