我有一个名为“MyDir”的目录。我使用Ubuntu操作系统。我有7个文件与各种扩展。我想编写一个Ruby程序来为每个文件添加一个时间戳。Ruby代码将时间戳添加到特定目录中的每个文件
回答
你需要得到在目标目录中的所有文件(见Dir.glob(...)
)的列表,然后再打开文件进行写入“ append mode“(见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'))
,如果你想将它添加到文件名
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-27 12:47:01
@ RoRProg..was有内容之前的文件? – rubyprince 2012-07-27 12:49:20
不是他们是空文件。我只是想在它里面添加时间戳。所以,当我打开这些文件时,我应该看到里面印有时间日期等。 – 2012-07-27 13:06:21
- 1. 将时间戳添加到ElasticSearch中添加的每个文档 - 嵌套2.0
- 2. 将48小时添加到CSV文件中的时间戳
- 3. PHP:将时间添加到时间戳
- 4. 将时间添加到时间戳
- 5. 将时间添加到时间戳
- 6. 将文件添加到zip存档的特定子目录
- 7. 如何将库的.pc文件添加到特定目录?
- 8. 将时间戳记添加到BASH中的mv文件名
- 9. 将特定时间添加到现有日期戳
- 10. 添加时间戳命令重定向到文本文件
- 11. 将时间戳添加到文件的Gradle脚本
- 12. 将日期和时间添加到MySQL中的时间戳中
- 13. Extjs-将时间戳添加到时间戳
- 14. 迭代目录中的特定文件
- 15. 将值添加到时间戳
- 16. 将3年添加到时间戳
- 17. 如何将时间戳添加到OutputDebugString()?
- 18. 将时间戳添加到mp4容器
- 19. 将秒添加到时间戳
- 20. 如何将日期时间戳添加到log4j2日志文件?
- 21. 如何将时间戳记添加到日志文件
- 22. 如何将时间戳添加到文件名为java.util.logging.FileHandler.pattern
- 23. 如何将每个文件数据与特定目录perl中的每个文件相加?
- 24. 在使用RBENV时将文件添加到我的Ruby项目
- 25. 添加时间戳到Joomla中的图像文件
- 26. 将.tar文件目录添加到JTree
- 27. CodeDom可以将源代码文件添加到项目中吗?
- 28. 将独立的Ruby文件添加到Ruby on Rails项目
- 29. 将目录添加到Ruby中的加载路径的END?
- 30. C#:如何跟踪目录中添加的每个文件并将loginfo信息记录到文件中?
[你尝试过这么远吗?(http://mattgemmell.com/2008/12/08/what-have-you-tried/) – maerics 2012-07-27 12:42:42
我试图打开文件&添加Timestamp = Time.now.to_i但它没有工作 – 2012-07-27 13:04:40
直接在您的问题中发布您尝试过的代码,这样做会帮助其他人识别您做错了什么(以及您正在尝试做什么)。 – maerics 2012-07-27 14:38:13