タグ

grepに関するohnishiakiraのブックマーク (6)

  • Big Sky :: 日本語grepが出来るjvgrepというのを作った。

    語を扱っていて困るのがgrep。正規表現パターンにマルチバイト文字を混ぜられなかったり、windowsで動かすと"表"の様に2バイト目にbackslashが混じる文字で動作しなくなったりします。 さらに複数のエンコーディングで書かれたファイルが散らばっていると一度のgrepで検索出来なかったりもします。 vimに限っては、内蔵のvimgrepを使う事で解決出来ますが、見つかったファイルをバッファに開いてしまうという挙動がある為、grepオリジナルの動作を求めている人にとっては都合の悪い物だったりもします。 vimgrepの様に複数のエンコーディングに対応していて、検索パターンにマルチバイト文字を含んだ正規表現が使えて、windowsでもちゃんと動いて、ついでといっちゃあなんだが、"**/*.txt"で再帰検索してくれる様なgrep無いかなぁと思ってたんですが、やっぱり無いので作りました

    Big Sky :: 日本語grepが出来るjvgrepというのを作った。
  • 連結 grep より 単体 awk: uyota 匠の一手

    大量の巨大なファイルを解析する必要があって、プログラムの効率を比べてみた。cat * > /dev/null をするだけで、十五分ぐらい掛かる。毎朝、走らせる予定のスクリプトなので速くしておきたいのだ。一回しか行わないのなら、十五分でも三十分でも大して気にしないのだが、朝の十五分は大差が出る。 そこで最初に目に付いたのが、文字列の検索。ある文字列を含む行は除外した後に、特定の文字列を含む行を処理する。grep と grep -v を連結したほうが早いか、awk のみで処理したほうが速いかを比べてみた。 Solaris で比べたところ、grep を連結したほうがどちらの順番でやっても awk の二倍の実時間三十分掛かった。grep | grep -v でも grep -v | grep でもあまり変わらない。awk だけで処理をすると十五分で終わる。この二つの大きな違いといえばパイプの IO

  • How to Implement World Fastest Grep.

    当です. 世界最速のgrep 作りました. このネタで学会発表とかしました. #=> JSSST, プログラミング・シンポジウム 「動的なコード生成を用いた正規表現マッチャの実装」 最近... 「世界最速のgrep」とはしゃいでも研究室内で相手にされなくなってきました. 先輩「へぇ, そうなの.」 同僚「はいはい最速最速.」 後輩「grepってなんですか?」 先生「そんなことより並列化は? 英語で論文書いて. PS3上で動かして.....」

  • 【レポート】GNU grepが高速な理由 | エンタープライズ | マイコミジャーナル

    FreeBSD - The Power To Serve why GNU grep is fast (なぜGNU grepは高速なのか)といったタイトルの興味深いメールがFreeBSD開発者メーリングリストに投函された。メールを出したのはGNU grepのオリジナル開発者であるMike Haertel氏。Mike Haertel氏はFreeBSDユーザでもあり、FreeBSD開発者メーリングリストで興味深いやりとりがあったため、このメールを流したとしている。Mike Haertel氏の紹介する内容はgrep(1)の実装のみならず、高速な文字列処理を実現するひとつの方法として参考になる。紹介されているGNU grep高速さの秘訣は次のとおり。 GNU grepは入力バイトのすべてをチェックするようなことは避けている。 GNU grepはバイトごとに適用する操作を極力最小限に減らしている。 G

  • grep(1)コマンドの使い方 | エンタープライズ | マイコミジャーナル

    The main aim is to document the hurdles that most of us face as UNIX/Linux/BSD sys admin in our day today life. LinuxやFreeBSDでよく利用されるコマンドのひとつにgrep(1)がある。ファイルから特定のキーワードを含んだ行を取り出したりコマンド出力から特定のキーワードを含んだ行を取り出すために利用されるコマンドで、正規表現と組み合わせて利用されることが多い。多機能で単一行表示のみならず、前後の行を含んだ出力も可能など、使いこなせるとさまざまな操作が可能。 LinuxディストリビューションにはGNU grepが含められていることが多い。*BSD系では最近BSDライセンスで実装されたgrep(1)への置き換えが進められているが、それら実装系でもGNU grepと互換性が確保

  • 1