grepについて
#histudy Vol.17
自己紹介
@shora_kujira16
大学2年生 (工学部)
圧力に屈してKeynoteを買いました
これから話すこと
grepが便利な場面
最低限覚えておきたいオプション
ackやagについて
grepとは
文字列検索系のコマンド
指定した文字列を含む行 or
指定した正規表現にマッチする行 を抽出する
オプションをよく忘れる (重要)
コマンドの基本
grep [オプション] 検索パターン [対象ファイル]
使用例1
今いるディレクトリ以下にあるファイルの中で
"#pragma omp" を含むファイルを探したい
$ grep -r "#pragma omp" .
-r: 指定したディレクトリ直下だけでなく、
その下にあるディレクトリも再帰的に検索
使用例2
リアルタイムにログをフィルタリングしたい
$ tail -f error_log | grep --line-buffered
"error"
--line-buffered: バッファせずに1行ごとに出力
覚えておきたいオプション
-R, -r: ディレクトリを再帰的に
-E, -F, -G, -P: 正規表現の設定 (後述)
-n: マッチした行番号を表示する
-v: マッチしなかった行を表示する
-i: 大文字小文字を無視
正規表現の設定
デフォルトは-G (--basic-regexp)
?|(){} にはが必要
-E (--extended-regexp) にすると不要
-P (--perl-regexp) では w, d なども使える
-F (--fixed-strings) は正規表現無効
単純に、文字列だけで検索を行う
デフォルト設定の変更
.bashrc や .zshrc に GREP_OPTIONS を書くことで、
デフォルト設定を変えられる
私はGREP_OPTIONS="-FIr --color=auto"にした
コマンドラインオプションが優先される
ackやagについて
grep +α のコマンドについての話題を最近良く見かけ
るので紹介します
ack
Perl製。sudo apt-get install ack-grep (Debian)
-rがデフォルト。.gitや.svnを無視する機能も
--php と指定すると、PHP関連のファイルだけを対象
にしてくれる (設定の追加も可能)
ag
コマンドはagだけど、
本当の名前はThe Silver Searcher
grepに比べてめっちゃ速いらしい
(アルゴリズマーとしては気になるところ)
sudo apt-get install silversearcher-ag
※ただしunstableに限る
移行するべき?
自分のシェルの履歴と相談
find ... | grep -v ... | xargs grep ...
みたいなのが多いなら、幸せになれるはず
私の場合はそんなに多くなかった
grep -r --include="*.c" ... でも割と何とかなるし...
まとめ
最低限の機能は知っておこう
(知らない機能は調べるのが難しい)
GREP_OPTIONS を有効に使おう
ackやagのことを覚えておいてくれるとうれしいな

More Related Content

PDF
mlr-grep - レコード指向grep
PDF
C++のライブラリを簡単に眺めてみよう
PDF
Python勉強会4-制御構文とパッケージ
PPTX
高度に最適化された移植可能なメモリマネージャ
PDF
Pythonデータ分析 第4回勉強会資料 12章
PDF
関数の最小値を求めることから機械学習へ
PDF
Python と私の事情
PPTX
R spec勉強会
mlr-grep - レコード指向grep
C++のライブラリを簡単に眺めてみよう
Python勉強会4-制御構文とパッケージ
高度に最適化された移植可能なメモリマネージャ
Pythonデータ分析 第4回勉強会資料 12章
関数の最小値を求めることから機械学習へ
Python と私の事情
R spec勉強会

What's hot (11)

PDF
Python for Data Anaysis第2回勉強会4,5章
PDF
Haskell勉強会 in ie
PDF
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
PDF
5社のGTFSをマージして、PostgreSQLにインポートしてみた
PPT
Glibc malloc internal
PDF
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
PDF
PythonでLispを実装した (evalつき)
PPTX
前期講座09
PDF
入門機械学習読書会二回目
PPT
始めよう!OpenStreetMap Developing
PDF
Haskell超初心者勉強会11
Python for Data Anaysis第2回勉強会4,5章
Haskell勉強会 in ie
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
5社のGTFSをマージして、PostgreSQLにインポートしてみた
Glibc malloc internal
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
PythonでLispを実装した (evalつき)
前期講座09
入門機械学習読書会二回目
始めよう!OpenStreetMap Developing
Haskell超初心者勉強会11
Ad

More from Sho IIZUKA (6)

PDF
HDDの返品保証を使ってみた
PDF
FM-indexによる全文検索
PDF
円と円の外接線の求め方
PDF
円と円の交点の求め方
PDF
About Pointer
PDF
勝手に解説 TopCoder Marathon Match 82 ColorLinker
HDDの返品保証を使ってみた
FM-indexによる全文検索
円と円の外接線の求め方
円と円の交点の求め方
About Pointer
勝手に解説 TopCoder Marathon Match 82 ColorLinker
Ad

grepについて