はじめに 昨今では1行につき、1つの JSON を出力する様なログファイル形式も珍しくはありません。 grep しやすい データベース化しやすい これらの理由で各所で多く使われています。僕も仕事で普通に使っているのですが、ある日突然そのログファイルを集計するスクリプトで以下の様なエラーが出始めました。

はじめに 昨今では1行につき、1つの JSON を出力する様なログファイル形式も珍しくはありません。 grep しやすい データベース化しやすい これらの理由で各所で多く使われています。僕も仕事で普通に使っているのですが、ある日突然そのログファイルを集計するスクリプトで以下の様なエラーが出始めました。
数多くあるUnixコマンドの中でも、もっとも利用頻度の高いもののひとつがgrepではないでしょうか。設定ファイルやログから該当する箇所を調べたり、ソースコードを検索したり、あるいはパイプラインのフィルタとして利用したりと、あらゆる場面で活躍する超基本ツールです。 とはいえgrepは機能がシンプル過ぎるため、もう少し空気を読んだ、賢い検索をしてくれる代替ツールもまた数多く存在します。たとえば本連載287回ではThe Silver Searcher(ag)を紹介しました。 とはいえこれはもう6年も前の記事です。ag以降も、いろいろな検索ツールが登場しています。そこで今回はさらに高速な検索ツールである、ripgrepを紹介します。 ripgrepとは ripgrepとは、公式サイトによると「ripgrep recursively searches directories for a regex
Typoしたものが大半なのだけど、指定した文字列とN文字違ったり、1文字ずれている(「あいうえお」→「いあうえお」みたいな)文字列をヒットさせたいということがごくごくたま~にあって、それをgrepでときどきやっている。 個人のマシンではfunctionを作ってあるのだけど、たま~にリモートマシンで使うとき(+ローカルのrcファイルを読み込ませてない時)なんかにはその場でコマンドを組み合わせたりしているので、備忘で残しておく。 1文字違う文字列をgrepする 指定した文字列から1文字違う文字列をgrepする場合、以下のようにする。 echo 検索対象文字列 | grep -f <(echo 検索文字列 | grep -o . | awk '{a=$0=a$0}END{for(i=1;i<=NR;i++){print gensub(/./,".",i)}}') blacknon@BS-PUB-
Make JSON greppable! gron transforms JSON into discrete assignments to make it easier to grep for what you want and see the absolute 'path' to it. It eases the exploration of APIs that return large blobs of JSON but have terrible documentation. ▶ gron "https://api.github.com/repos/tomnomnom/gron/commits?per_page=1" | fgrep "commit.author" json[0].commit.author = {}; json[0].commit.author.date = "2
システムのコードが入ったリポジトリでgrepを使って検索するというのはよくあることです。全体の中にどこに該当するテキストがあるのか分からない場合、まずは全体を探してみるでしょう。 今回紹介するmysqlgrepはMySQLで使えるGrepです。テーブルを指定する必要もなく、一気に検索できます。 mysqlgrepの使い方 mysqlgrepのヘルプです。 $ ./mysqlgrep Usage: mysqlgrep -u username -h hostname -d database -t table pattern -u username : mysql username to connect with (default: root). -h hostname : hostname of mysql server to connect to (default: localhost).
icGrep: The Modern Grep Replacement Building off the Parabix transform representation of text as well as the highly-regarded LLVM compiler infrastructure, icGrep is the modern replacement for the venerable grep utility, offering fundamentally parallel and consistently high-performance search as well as broad support for Unicode regular expressions. icGrep embodies a completely new algorithmic appr
ファイルの中身を文字列で検索することができるユーティリティ「grep」は、コンピューターを扱う上で、なくてはならないツールといっても過言ではないかもしれません。grepは長い歴史を持つツールで、それ自体少しづつ改良さてきていますが、最近はもっと積極的に高速性を追求したgrep的なツールも開発されてきています。 今回紹介する「grab」もその中の一つ。複数コアを使った検索の並列化や(ただしほとんどの場合遅くなるらしい)、mmapとMAP_POPULATEの使用、PCREのJIT機能などを使った高速化の技法を組合せ、SSD上で100%の劇的なパフォーマンスの向上を成し遂げたということです。 しかしさらに上手が… Hacker Newsで「grab」の話題が取り上げられた後、高速化grepの先駆者、「The Silver Searcher」(コマンド名ag)の作者が自らベンチマークを行い、gra
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました grepは便利ですよね。ターミナルで操作している時には欠かせないコマンドですし、Emacsなどのエディタからもよく使われます。こんなツールが他のパターンでも使えると便利だと思うこともあるでしょう。 そのパターンの一つにHTMLがあります。HTMLのクラスやIDで検索するのにgrepは向いていません。そこで使えるのがqrepです。 qrepの使い方 qrepのインストールはnpmコマンドで行います。 $ npm install -g qrep これで準備完了です。 例えば標準入力から検索します。 $ curl -s -L http://www.moongift.jp/ | qrep title <title>オープンソースを毎日紹介 MOONGIFT</title> このようにしてt
■ sshでSendEnvをキャンセルさせるには sshするとLANG等が勝手に引き継がれるのは、Ubuntuだと/etc/ssh/ssh_configに SendEnv LANG LC_* と書いてあるからだとわかったが、これをやめる方法が見つからない。 ぐぐってみるとなんとほんとにないそうだ。 Bug 1285 – provide fallback options /etc/ssh/ssh_config 2007年に報告されている。最後の2013年11月には Damien Miller 2013-11-16 02:03:24 EST Created attachment 2375 [details] Add UnSendEnv option This adds an UnSendEnv option that allows cancelling SendEnv. It supports
最近GNU grepコマンドの最新バージョンがリリースされ、速度が10倍になったとのアナウンスがあった。それを聞いて、なんであんな枯れた技術に10倍もの高速化の余地があったのだろうと不思議に思った人も多いだろう。 ニュース記事:grepコマンド最新版、”-i”で10倍の高速化 本家のリリースノート:grep – News: grep-2.17 released [stable] 今回のリリースでは正確には、マルチバイトロケールで、-iオプション(–ignore-case、つまり大文字小文字を区別しないオプション)をオンにした時の速度が10倍くらいになったそうだ。 なぜそんなに速くなったのか?逆を言えば今までなぜそんなに遅かったのか? そもそも、多くの日本人にとって「大文字小文字の区別」というと英語のアルファベットか、せいぜいフランス語とかドイツ語とかのアクサン記号・ウムラウトがついたものく
■_ Amazon.co.jp: 入門 コンピュータ科学 ITを支える技術と理論の基礎知識: J. Glenn Brookshear, 神林靖, 長尾高弘: 本 を見かけたのでぱらぱらと眺めたのだけどよさげ。 入門 コンピュータ科学 にあるように 入門 コンピュータ科学 内容 UCバークレイ、ハーバード大学をはじめ全米126校で採用され続ける定番教科書! 米国大学の教養課程で使用されているコンピュータ科学の定番教科書。これからコンピュータ科学を学ぼうとして いる学生および大学でコンピュータ科学を学ばなかった社会人プログラマのための独習書として最適です。 というもので、目次もこうだから。 入門 コンピュータ科学 目次 第0章 序章 0.1 アルゴリズムの役割 0.2 計算の歴史 0.3 アルゴリズムの科学 0.4 抽象化 0.5 本書の構成 0.6 社会的影響 第1章 データストレージ 1.
GNU Projectのgrep開発チームは2月17日、最新安定版「grep-2.17」をリリースした。パフォーマンスの向上が行われており、「10倍の高速化」が実現されているという。 grepはファイルから特定のパターンを検索するツールで、「global regular expression print」の略。正規表現による検索も可能で、多くのUNIX系システムで使われているほか、Windowsでも動作する。 grep 2.17は1月初めに公開されたバージョン2.16に続く安定版。7週間で8人の開発者より合計19のコミットがあったという。最大の特徴は性能。バッファモードの活用などにより、マルチバイト文字列に対し-iオプションを利用し、\または[が含まれていないパターンを検索する際の速度が10倍高速になったという。-iオプションを利用しない場合は、最大7倍程度の改善が可能だそうだ このほかg
outline git-grepの話 -eオプションの話 --andオプションの話 git-grepの話 UNIX系のOSを使ったことのある人ならみんな大好きgrepコマンド。 その拡張がgit-grepだ。 ふつうのgrepだと、指定したディレクトリ以下のファイル『全て』を検索対象としてしまうため、膨大な時間がかかることがよくある。そして時間を持て余してネットサーフィンしたりコンビニに買い物に行ったりする。そして帰ってきて見るとファイルが見つからなかったりして、貴重な労働時間をムダにするのである。 そこでgit-grepですよ git-grepは、gitで管理しているリポジトリの範囲内でgrepするコマンドだ。 何が違うかというと、 gitで管理しているリポジトリの中身「しか」検索できない その分ふつうのgrepと比べて圧倒的に速い というところである。 もちろんふつうのgrepも、ちゃ
「The Silver Searcher」は、grepより速いackよりさらに高速なファイル検索ソフト(作者ブログ)。主にソースコードを対象にした検索ソフトで、次のような特徴があるようです。 ackより3〜5倍高速。 .gitignoreまたは.hgignoreからパターンを読み込みファイルを無視することができる。 検索したくないファイルがある場合、.agignoreファイルにパターンを追加できる。 コマンド名がackより短い(※agというコマンド名なので)。 Gentoo, OS X, ArchLinux、FreeBSD用のバイナリパッケージも用意されているので手軽に導入可能(ソースコード自体はCで書かれている様子)。TextMateやVim、Emacsといったエディタからも利用可能みたいです。 ggreer@carbon:~/cloudkick/reach% du -sh 250M .
Beyond grep: ack 2.04, a source code search tool for programmers grepをよく使うプログラマはどう考えても乗り換えるべき新しいgrepコマンド「ack」。 サーバに入ってコードを書いている人はかならず使うgrepですが、grepよりも高速に検索でき、git,svn等のソースコード以外のソースはgrepしないで検索できるツールらしいです。 Perlで書かれていて、Perlの強力な正規表現が使え、ハイライトしてくれます。ソースツリーの下で「ack 検索ワード」で検索するだけというシンプルさもいいです WEBサービスを書いているとhtmlやphp等色々なソースをいじりますが、ファイルの検索対象も選べるため、便利です。 ack --php <検索ワード> でphpのソースのみを対象とし、ack --nophp <検索ワード>でphp
Geoff’s site: The Silver Searcher: Better than Ack ggreer/the_silver_searcher · GitHub パターン検索にはackを利用していて、通常利用時には特に不満は無かったんですが、 ファイル数が多いディレクトリだと遅かったので、もっと他の方法が無いかと調べていたら ackの3〜5倍速いというThe Silver Searcherというものが あったので導入。 The Silver Searcherの特徴 公式に書いてあるThe Silver Searcherの特徴 ackの3〜5倍高速 .gitignore、.hgignoreに記載されているものを検索対象から除外 検索対象から除外したいファイルは.agignoreに記載 agというコマンド名で、ackと比べてコマンドが短い(33%減!) なぜ高速なのかは https
みなさんgrepしてますか!? 便利ですよねgrep。自分はLinuxを触りはじめたころ、 grepを使いこなせるようになれば一人前だ って言われて、なにいってんのこの人きもいとか思ってないですよ全然。 まあ今となってはgrepをそれなりに使いこんでるわけですよ。 $ find . -name "*hoge" -type -f | grep -v '\.svn' | xargs grep piyopiyo とかやってね。 なんかfind|xargs|grepとかまさにUNIX的ですよね。素敵やん。 簡単なコマンドを組み合わせてでっかいことやっちゃう??みたいな?? めんどくせーよっ!!! ってことで、ackを使いましょう。 ack昨日知りました。 で、今日、使いはじめて2日目。 とりあえず、公式(Beyond grep: ack 2.12, a source code search too
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く