2010-09-28 4 views
21

Я хочу удалить содержимое из списка файлов.Удалить все содержимое из файла

EDIT:

У меня есть список файлов.

file1 file2 file3

Того файл, содержащий кучу строк ...

Я хочу, чтобы удалить все строки из каждого файла.

+1

Каков ваш конкретный вопрос? –

+0

@ Тимо. Похоже, у него есть список файлов, и он хочет удалить/удалить свой контент. Это было ясно из первой редакции. Если он публикует здесь, он, вероятно, хочет знать, как это можно добиться. Не все здесь свободно говорят по-английски. – z5h

ответ

37

Похоже, что вам нужно обрезать файл. ли что-то вроде:

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

'File.open ('/ tmp/file', 'w') {}' должно быть достаточно. –

+16

'truncate' также доступен как метод класса, нет необходимости явно открывать файл:' File.truncate ('/ path/to/file', 0) '. Обратите внимание, однако, что это задокументировано как «Недоступно на всех платформах». (Что обычно означает только POSIX, т. Е. Нет JRuby, нет IronRuby, нет Windows.) –

15

Чтобы усечь файл:

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

укоротить список файлов:

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

Поскольку усечение не доступен на всех платформах, используйте f = open('filename', File::TRUNC) {}

Смежные вопросы