实际上我正在使用此代码查找文件中的路径:
files_to_read = Dir['This/is/a_path/.sln']
files_to_read.each do |file_name|
array = []
# regex for the line where the source path is stored
regex = /(\.\.\\[^"]+)/
File.open(file_name) do |f|
f.each_line do |line|
regex.match(line) do |matches|
array << matches[1]
File.open("This/is/a_path/tmp.txt", 'w+') {|f| f.write array.join("\n")}
end
end
end
end
end
到目前为止还可以,我在tmp.txt中得到了这个结果:
tmp.txt:
..\..\..\Project\Source\sourceA.c
..\..\..\Project\Source\ModuleB\sourceB.c
现在我想将这些c源复制到另一个目录“destination_dir”。像这样的东西(作为“伪代码”):
File.open("This/is/a_path/tmp.txt", 'r') do |f|
f.each_line FileUtils.cp(<the_c_sources>, "destination_dir")
知道如何用ruby做到这一点吗?
答案 0 :(得分:3)
我不确定我是否遵循了这个问题,但你的意思是
tmp_file = File.read "This/is/a_path/tmp.txt"
tmp_file.lines.each do |file_name|
FileUtils.cp(file_name, "destination_dir")
end