美国的同事经常给我发点儿source, 其实他可以只给我发差分的内容,
但是这样一来, 我就无法知道某个文件, 到底是老美是删除了他, 还是没有变更.
所以我们通常的做法, 就是把整个工程发过来,
(不要问我, 问什么我们不使用同一个版本控制...这个问题很难回答)
于是我就很想知道, 这两版source到底有什么不同,
我想删除那些相同的文件,
这个操作可以在Beyond Compare中点几下按钮来完成.
为了比点按钮更快, 也为了练习一下ruby, 把这个脚本用ruby实现如下:
require "fileutils" require "pathname" dir1 = 'I:/temp/test_for_ruby/121102_OLD' dir2 = 'I:/temp/test_for_ruby/121221_NEW' Dir.glob("#{dir1}/**/*") do |item| next if item == '.' or item == '..' next if File.directory? item coordinate_item = Pathname.new(dir2)+ Pathname.new(item).relative_path_from(Pathname.new(dir1)) next unless File.exist? coordinate_item FileUtils.rm [item,coordinate_item] if FileUtils.compare_file(item,coordinate_item) end
脚本中, glob的参数, 连续使用了两个**, 目的是为了遍历所有的子文件夹.
再就是操作相对路径的部分有一点儿长,
其余还都算很接近自然语言
相关推荐
一、遍历文件夹下所有文件,输出文件名 代码如下: def traverse_dir(file_path) if File.directory? file_path Dir.foreach(file_path) do |file| if file !=”.” and file !=”..” traverse_dir(file_...
ruby 文件夹遍历的四种方法。
这个Ruby脚本的目的是从iOS项目中提取出类的继承关系,并以JSON格式导出结果文件。利用这个脚本,我们可以便捷地分析一个iOS项目的类结构。 脚本的工作原理是遍历iOS项目中的所有Swift文件,通过解析语法树来找出类...
主要介绍了Ruby遍历文件夹同时计算文件的md5sum,本文直接给出实现代码,需要的朋友可以参考下
ruby复制文件夹,各类文件夹的操作
ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件
在ruby中我们要实现遍历指定目录的方法,网上的方法也非常之多,我们可以拿来参考参考,如下边的traverse.rb文件内容所示: 代码如下: #!/usr/bin/ruby def traverse(filepath) if File.directory?(filepath) ...
Ruby 中的练习练习 目录 自述文件 投稿指南 Ruby图标 设置 您需要一个最新的 (2.6+) 版本的 Ruby,仅此而已。 Minitest 附带了该语言,因此您已准备就绪。 运动解剖 练习的文件存在于exercises/<slug> 。 练习的 ...
Learn the principles behind object-oriented programming and within a few chapters create a fully functional Ruby application. You'll also gain a basic understanding of many ancillary technologies such...
JsonCompare - 返回两个JSON文件之间的差异
使用RUBY语言将TXT文件中的内容写入到excel中!
ruby文件操作大全,主要是DIR,FILE和文件夹类的相关操作,比较实用
安装sqlite3时候会提示你从链接中下载sqlite3.dll到ruby安装目录的bin文件夹下! (4)安装mysql gem install mysql2 创建项目: rails new webapp -d mysql rails server #启动服务 rails generate scaffold hello ...
Ruby猛男 一个用于检查和修改Mach-O文件的Ruby库。什么是Mach-O文件? 被macOS和iOS(以及其他)用作目标文件,可执行文件,动态库等的通用二进制格式。安装ruby-macho可以通过RubyGems安装: $ gem install ruby-...
文件夹中的每个练习文件都将以注释开头,这些注释提供有关以下内容的更多详细信息: 您需要如何操作或使用此文件来完成练习。 一些练习将要求您操纵“当前”文件并运行它。 其他练习将要求您创建新文件,然后引用...
SSLkeylog 一个Ruby库,它以记录来自客户端连接的SSL会话密钥。 分析网络流量时,诸如的工具可以使用此日志来解密数据。 注意:此版本的库是功能原型。 将来可能会更改实现。安装该gem使用C扩展名从Ruby OpenSSL::...
本资源是用C语言所写的,数据结构中图的创建及其相关的深度,广度遍历
一个Ruby脚本,它扫描指定文件夹和文件中的所有快速代码,并自动生成可在浏览器中查看的实体图(类似于类图)。 用法: 在终端运行中: $ ruby generateEntityDiagram . rb 如果您未指定任何命令行参数,则脚本将...