2010-09-28 30 views
21

Ich möchte den Inhalt aus der Liste der Dateien entfernen.Löschen Sie den gesamten Inhalt aus Datei

EDIT:

Ich habe Liste der Dateien.

file1 file2 file3

Die Datei paar Zeilen mit ...

ich alle Linien von jeder Dateien entfernen möchten.

+1

Was ist Ihre spezifische Frage? –

+0

@Timo. Es klingt, als ob er eine Liste von Dateien hat und er möchte ihren Inhalt entfernen/löschen. Das war seit der ersten Überarbeitung klar. Wenn er hier posten will, will er wahrscheinlich wissen, wie das erreicht werden kann. Nicht alle hier sprechen fließend Englisch. – z5h

Antwort

37

Sieht so aus, als müssten Sie die Datei abschneiden. Sie so etwas wie:

File.open('/tmp/file', 'w') {|file| file.truncate(0) } 
+11

'File.open ('/ tmp/file', 'w') {}' sollte ausreichen. –

+16

'truncate' ist auch als Klassenmethode verfügbar, die Datei muss nicht explizit geöffnet werden:' File.truncate ('/ Pfad/zu/Datei', 0) '. Beachten Sie jedoch, dass dies als "Nicht auf allen Plattformen verfügbar" dokumentiert ist. (Was normalerweise nur POSIX bedeutet, d. H. Kein JRuby, kein IronRuby, kein Windows.) –

15

Um eine Datei gestutzt:

File.truncate('/path/to/file', 0) 

Zur Liste der Dateien gestutzt:

[file1, file2, file3].each { |file| File.truncate(file, 0) } 
0

Da truncate nicht auf allen Plattformen verfügbar ist, verwenden f = open('filename', File::TRUNC) {}

Verwandte Themen