Rubyの魔神 このページをアンテナに追加 RSSフィード

   「Ruby」は宝石の魔神のイメージ(The Jinn of the Ruby)
   [VB] [VB6] [C#] [Android] [電子工作] [個人メモ] [仕事メモ] [アイデア] [TstLink] [CE] [LTSA] [自動化] [Qt] [OCaml] [TOOLS]
   [3Dプリンタ] [RAA] [Forge]   [機能別索引] [逆引きRuby] [マニュアル] [るびま] [標準ライブラリ] [るりまサーチ] [Try! Ruby] [PRaggerまとめ] [ピジョン・ブラッド]
   [Rubyコーディング規約] [プログラミングのオキテ] [Rubyist SNS] [TOOLBIS]
   [RubyネットワークProg] [druby] [コードなにがし] [RDocテンプレ] [Ruby/Tkサンプル]
   [WAVE] [Xperia] [github] [twitterなど] [Java] [EA] [マクロ]

2013-09-19

ログファイルから「リトライ」という文字を含むファイルのみ残す

ログファイルから「リトライ」という文字を含むファイルのみ残す - Rubyの魔神 を含むブックマーク はてなブックマーク - ログファイルから「リトライ」という文字を含むファイルのみ残す - Rubyの魔神 ログファイルから「リトライ」という文字を含むファイルのみ残す - Rubyの魔神 のブックマークコメント

この前書いたプログラムを書きなおしてみた。


Dir.glob("**/*.log").map{|x|
    if File.readlines(x).map{|line|line.index("リトライ")} .compact.size == 0 then
        x 
    else 
        nil 
    end
}.compact.map{|x|File.delete(x)}

もっと短いのも考えてみた。

Dir.glob("**/*.log").map{|x|File.read(x).index("リトライ")? nil:x}.compact.map{|x|File.delete(x)}

とか

Dir.glob("**/*.log").map{|x|File.delete(x) if not File.read(x).index("リトライ")}

とか。ifや三項演算子なしにできないかな。


以下、元のプログラム

OS:Windows7

ruby 2.0.0p195 (2013-05-14) [i386-mswin32_100]

IDE:Geany

# coding: windows-31j

require "Kconv"
require 'FileUtils'

SERCH_WORD = "リトライ"

Dir::glob("**/*.log").each{|f|

	detect_flag = false

	open(f,"r"){|f1|
		while not f1.eof
			line = Kconv.tosjis(f1.readline)
			if line.index(Kconv.tosjis(SERCH_WORD)) != nil then
				detect_flag = true
			end
		end
	}
	if detect_flag == false then
		puts f
		FileUtils.rm(f)
	end
}

tap

tap - Rubyの魔神 を含むブックマーク はてなブックマーク - tap - Rubyの魔神 tap - Rubyの魔神 のブックマークコメント

tap

Ruby - tap - Qiita [キータ

teeコマンドを連想した。

 %w"ruby java".map{|x|x.capitalize} #=> ["Ruby", "Java"]
 %w"ruby java".tap{|x|p x},map{|x|x.capitalize} #=> ["Ruby", "Java"]

レシーバをそのまま返すので途中に割り込ませたり副作用させたり。

FizzBuzz

FizzBuzz - Rubyの魔神 を含むブックマーク はてなブックマーク - FizzBuzz - Rubyの魔神 FizzBuzz - Rubyの魔神 のブックマークコメント

mapをつかってFizzBuzzを書いてみた。

(1..30).map{|x|x%3==0?(x%5==0?"FizzBuzz":"Fizz"):(x%5==0?"Buzz":x)}
トラックバック - http://ruby.g.hatena.ne.jp/garyo/20130919