ich eine Beispieldatei wie die folgenden habe:Groovy: Bearbeiten eine Datei
CREATE GLOBAL TEMPORARY TABLE tt_temp_user_11
(
asdfa
)
CREATE GLOBAL TEMPORARY TABLE tt_temp_user_11
(
asdfas
)
some other text in file
Ich mag diese Datei konvertieren in folgenden:
CREATE GLOBAL TEMPORARY TABLE 1
(
asdfa
)
CREATE GLOBAL TEMPORARY TABLE 2
(
asdfas
)
some other text in file
Also im Grunde jedes zeitweiliges Auftreten TABLE haben wird Nummer angehängt zu ihm.
Bisher habe ich folgendes groovy Skript:
int i = 0
new File ("C:\\Not_Modified").eachFile{file ->
println "File name: ${file.name}"
new File ("C:\\Not_Modified\\"+file.name).eachLine {line ->
if (line.indexOf("TEMPORARY TABLE")>0)
{
i++
}
}
println "There are ${i} occurences of TEMPORARY TABLE"
}
Wie kann ich den Text in der Datei ändern? sollte ich in eine andere Datei schreiben?
BTW, ich habe Verzeichnis in meinem Skript, weil ich an vielen dieser Art von Dateien in einem Verzeichnis arbeiten werde.
Ich hätte Perl für diese Aufgabe gewählt, wollte aber einen groovigen Versuch geben.
Nur neugierig - warum empfehlen Sie == ~ anstelle von indexOf? Ist es schneller? – aldrin
Ich schlage vor, regexp verwenden, denn in diesem Fall können Sie richtige "TEMPORARY TABLE" genauer erkennen. Mit anderen Worten, um Wörter TEMPORARY TABLE in Daten (z. B. TEMPORARY TABLE. */(Oder so) –
... Jetzt hast du zwei Probleme ... :) –