grepやRakで2つ以上のキーワードの共起を検索する方法
ある単語Xが出てくる場所の前後5行以内に別な単語Yが出現する場所を探したい。
たまにはそんなこともありますね。
-A -B -C オプションが実装されている
Rak
やgrepを使えば簡単。
shell>>
% rak X -C 5 | rak Y
<<--
-A nは後方n行、-B nは前方n行、-C nは前後n行を
含めて表示するので、それをパイプして前後の文脈の
中からさらに検索してあげればOK。
ある単語Xが出てくる場所の前後5行以内に別な単語Yが出現する場所を探したい。
たまにはそんなこともありますね。
-A -B -C オプションが実装されている
Rak
やgrepを使えば簡単。
shell>>
% rak X -C 5 | rak Y
<<--
-A nは後方n行、-B nは前方n行、-C nは前後n行を
含めて表示するので、それをパイプして前後の文脈の
中からさらに検索してあげればOK。
一時動かなくなっていた
restful_open_id_authenticationプラグイン
ですが、
ひとまず手元の環境で動く状態になったので、こちらに置いておきます。
http://svn.s21g.com/public/rails/plugins/restful_open_id_authentication_redux/
ruby-openid-2.0.1
のexamplesのコードが非常に参考になりました。
プラグイン中のmigrationジェネレータは、何も無い状態から
DBを作るためのマイグレーションになっています。
すでにrestful_open_id_authenticationプラグインを
使っている状態からアップグレードする場合は、下記
[2]に掲載したmigrationコードをご利用ください。
Enter at your own risk!
See Also
restful_open_id_authenticationプラグイン
でOpenIDストアに使用していたDBを
ruby-openid 2.0に移行させるためのマイグレーション。
ruby-openid 2.0のexamplesから抜粋。
rails>>
class UpgradeOpenIdStore < ActiveRecord::Migration
def self.up
drop_table "open_id_settings"
drop_table "open_id_nonces"
create_table "open_id_nonces", :force => true do |t|
t.column :server_url, :string, :null => false
t.column :timestamp, :integer, :null => false
t.column :salt, :string, :null => false
end
end
def self.down
drop_table "open_id_nonces"
create_table "open_id_nonces", :force => true do |t|
t.column "nonce", :string
t.column "created", :integer
end
create_table "open_id_settings", :force => true do |t|
t.column "setting", :string
t.column "value", :binary
end
end
end
<<--
ちなみにオリジナルのプラグインが生成したマイグレーションコードはこちら。
rails>>
create_table :open_id_associations, :force => true do |t|
t.column :server_url, :binary
t.column :handle, :string
t.column :secret, :binary
t.column :issued, :integer
t.column :lifetime, :integer
t.column :assoc_type, :string
end
create_table :open_id_nonces, :force => true do |t|
t.column :nonce, :string
t.column :created, :integer
end
create_table :open_id_settings, :force => true do |t|
t.column :setting, :string
t.column :value, :binary
end
<<--
open_id_settingsは不要になって、open_id_nouncesの
内容が変わります。
昨日RubyGemsを1.0.0にアップデートしたところ、require_gemが使えなくなってしまったため、
内部でrequire_gemを使っているGemが使えなくなりました。
かなり前から移行措置が取られていたため、
使えなくなったGemはほとんど無かったのですが、
一個だけ、ruby-openidの1.x.x系列が使えなくなっていました。
その結果、愛用していた
restful_open_id_authenticationプラグインが
動かなくなってしまいました。
結構いろんなプロダクトで使っていたので影響大です。
ruby-openidの2.x.x系列は、require_gemを使わないようなコードに
なっているのですが、インターフェイスが大分変わっているため、
すんなりとアップグレードが出来ない感じですね。
しかし、アップグレードしないわけにもいかないので、
restful_open_id_authenticationプラグインの
ruby-openid 2.x.x系対応に着手します。
すでに同じ問題に取り組んでいる方がいらっしゃいましたら、
喜んでご協力いたしますのでご連絡いただけるとありがたいです。
連絡先
遂にリリースされましたね。
Ruby-1.9.1(12/25リリース予定の)にバンドルされる見通しのRubyGemsですが、
それに先立ってバージョン1.0.0がリリースされました。
Release 1.0.0 fixes several bugs.
RubyGemsのバージョンアップを行うためには、
通常のGemパッケージとは違い、以下のような
コマンドを実行する必要があります。
shell>>
% sudo gem update --system
<<--
今年の年末はいろいろと新しくなって、ユーザとしては楽しいですね。
開発者の皆様、お疲れ様です。
本日、DNSサーバの設定の問題により、本ブログにアクセスできなくなる
障害が発生しておりました。
現在は復旧しておりますが、設定が反映されるまで
今しばらくアクセスが出来ない状態が続く可能性があります。
ご迷惑をおかけいたしますが、
もうしばらくお待ちいただけますと幸いです。
よろしくお願いいたします。