我最近开始使用 Ruby,想知道是否有办法将列表输出转换为对象,以便我可以访问属性。
为了更清楚一点,这是我的输出
find ./* -type f | xargs ls -l
-rw-r--r-- 1 ncktrnl staff 0 Sep 4 18:52 ./dir1/file3
-rw-r--r-- 1 ncktrnl staff 0 Sep 4 18:52 ./file1
-rw-r--r-- 1 ncktrnl staff 0 Sep 4 18:52 ./file2
现在我想将上面的列表转换为 File 或 Dir 对象,以便我可以轻松访问属性。
例如:
output = `find ./* -type f | xargs ls -l`
out_arr = output.split("\n")
out_arr.each do |line|
f = File.new(line)
puts "#{f.mtime}" # => prints mtime after parsing the line
end
我File.new
以示例为例,但我认为它不是这样工作的,所以我想知道是否有办法做到这一点。我可以编写自己的解析器,但不确定是否已经存在某些东西。我无法创建实际文件的文件对象,因为我通过在不同主机上运行远程 ssh 命令来获取列表。