我有一个名为“MyDir”的目录。我正在使用 Ubuntu 操作系统。我有 7 个具有各种扩展名的文件。我想编写一个 Ruby 程序来为每个文件添加一个时间戳。
问问题
1712 次
2 回答
1
您需要获取目标目录中所有文件的列表(请参阅 参考资料Dir.glob(...)
),然后以“追加模式”(请参阅参考资料)打开文件File.open(...)
并写入时间戳。例如:
def add_timestamps(dir, timestamp=Time.now)
Dir[File.join(dir, '*')].each do |filename|
File.open(filename, 'a') { |f| f.puts(timestamp) }
end
end
add_timestamps('MyDir') # OR...
add_timestamps('MyDir', Time.parse('2001-02-03T04:05:06Z'))
于 2012-07-27T14:44:06.017 回答
0
如果要将其添加到文件名中
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.rename(x,"#{x}.#{t}") }
# or dont add timestamp on files that are ending with 10 digits
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.rename(x,"#{x}.#{t}") unless /\.\d{10}$/.match(x) }
#if you want to add it to the end of the file's content
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.open(x,'a') { |f| f.write("\n#{t}\n") } }
于 2012-07-27T12:40:32.537 回答