2007-10-29 Rubyデビューと子供の誕生日。 [長年日記]

_ [Ruby] 重複ファイルを消すフィルタ書いてみた。

携帯の画像とかをガバッと転送したりしてると、同じ画像ファイルが2つできたりする。何百枚もあると手でやってられないので、rubyの勉強を兼ねて作ってみた。(前からrubyを勉強したかったのだが、適当なテーマがなかった)

だっさいソースだけど。

機能:カレントディレクトリの中に同一ファイルがあったらどっちかを消す。

どっちだっけ。lsで後に出てくる方か。

                                                                                        
#!/usr/local/bin/ruby
DIR=Dir::getwd+"/"
def hikaku(f1,f2,dir,list)
    if(FileTest.directory?(dir+f1))
        return 2
    end
    if(FileTest.directory?(dir+f2))
        return 2
    end
    s1=File::stat(dir+f1)
    s2=File::stat(dir+f2)
    if s1.size!=s2.size
       return 1
    end
    f1=open(dir+f1,"rb")
    f2=open(dir+f2,"rb")
    z=0
    s1.size.times {
        x1=f1.read(1)
        x2=f2.read(1)
        if x1!=x2
                z=1
                break
        end
    }
    return z
end
list=Dir::entries(DIR)
LEN=list.length
for i in 0..LEN
    if(list[i]==nil)
        next
    end
    if(!FileTest.file?(DIR+list[i]))
        next
    end
    for j in i+1..LEN
        if(list[j]==nil)
                next
        end
        if(!FileTest.file?(DIR+list[j]))
                next
        end
        case hikaku(list[i],list[j],DIR,list)
        when 0
              puts list[j]+" removed."
              File::unlink(DIR+list[j])
        when 1
        when 2
              print " IGNORE "
        else
              print " error  "
        end
    end
end
無駄なコードもいっぱいあるが。 まあ動いた。Rubyデビュー成功。うはうは。

_ [etc] 画像整理。

で、上のフィルタを使って画像の整理をした。子供がもうすぐ1歳。画像やら動画やらすごい枚数だった。

今週末はちょっとだけ達成感。


検索キーワード:

記事

  • 2019-09-09
    • 1. [Internet]Signin with Googleの制限
    • 2. [自転車]ブレーキパッド交換
  • 2019-08-31
    • 1. [ubuntu]ubuntu18.04のノートPCがサスペンドから復帰しない
  • 2019-08-17
    • 1. [Internet]bye, Yahoo
  • 2019-08-16
    • 1. [Emacs]straight.elに乗り換え。
  • 2019-08-15
    • 1. [社会][Internet]IT社会とニュース

カテゴリ

Amazon | Android | apache | Arduino | bash | bluetooth | Books | CakePHP | CakePHP3 | Chrome | CSS | Docker | Eclipse | Emacs | etc | Firefox | Flask | Gadget | git | Gnome | Google | Heroku | HTML | Internet | iPhone | IS01 | IS03 | Java | JavaScript | json | Kotlin | LINE | magento | mysql | nginx | nodejs | Oops | PC | Perl | php | Python | Qt | Ruby | ruby | Shell | tdiary | twitter | ubuntu | unix | Web | Windows | windows | WindowsMobile | WX5 | YAML | zsh | ここか | そば | つくる | つり | できごと | アクアリウム | ギター | セキュリティ | プリンタ | ベース | ボクシング | ポエム | マネー | メシ | ラズパイ | 仕事 | 作家 | 壮絶 | 妄想 | 忘れる | 料理 | | 暑い | 痛い | 社会 | 自転車 | | 車輪 | | 野球 | 銭湯 | 音楽 |

全部 : / 今日 :

近頃

links

profile

もっとヒゲ伸ばしたい。