携帯の画像とかをガバッと転送したりしてると、同じ画像ファイルが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デビュー成功。うはうは。
記事
カテゴリ
Amazon | Android | apache | Arduino | AWS | bash | bluetooth | Books | CakePHP | CakePHP3 | CakePHP4 | Chrome | Chromebook | CodeIgniter | CSS | Docker | Eclipse | Emacs | etc | Firefox | Flask | Gadget | git | Gnome | Google | Heroku | HTML | hugo | Internet | iPhone | IS01 | IS03 | Java | JavaScript | json | Kotlin | Laravel | LINE | magento | mysql | nginx | nodejs | Oops | PC | Perl | php | Python | Qt | Ruby | ruby | Shell | ssh | tdiary | twitter | ubuntu | unix | VirtualBox | Web | Windows | windows | WindowsMobile | WX5 | YAML | zsh | ここか | そば | つくる | つり | できごと | アクアリウム | ギター | セキュリティ | プリンタ | ベース | ボクシング | ポエム | マネー | メシ | ラズパイ | 仕事 | 作家 | 壮絶 | 妄想 | 忘れる | 料理 | 旅 | 暑い | 痛い | 社会 | 自転車 | 豚 | 車 | 車輪 | 酒 | 野球 | 銭湯 | 音楽 | 食
全部 : / 今日 :
近頃
profile