×
  • Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
 

grepについて

on

  • 589 views

姫路IT系勉強会 Vol.17 LT資料

姫路IT系勉強会 Vol.17 LT資料

Statistics

Views

Total Views
589
Views on SlideShare
547
Embed Views
42

Actions

Likes
4
Downloads
2
Comments
0

1 Embed 42

https://twitter.com 42

Accessibility

Categories

Upload Details

Uploaded via SlideShare as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    grepについて grepについて Presentation Transcript

    • 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 +α のコマンドについての話題を最近良く見かけるので紹介します
    • ackPerl製。sudo apt-get install ack-grep (Debian)-rがデフォルト。.gitや.svnを無視する機能も--php と指定すると、PHP関連のファイルだけを対象にしてくれる (設定の追加も可能)
    • agコマンドはagだけど、本当の名前はThe Silver Searchergrepに比べてめっちゃ速いらしい(アルゴリズマーとしては気になるところ)sudo apt-get install silversearcher-ag※ただしunstableに限る
    • 移行するべき?自分のシェルの履歴と相談find ... | grep -v ... | xargs grep ...みたいなのが多いなら、幸せになれるはず私の場合はそんなに多くなかったgrep -r --include="*.c" ... でも割と何とかなるし...
    • まとめ最低限の機能は知っておこう(知らない機能は調べるのが難しい)GREP_OPTIONS を有効に使おうackやagのことを覚えておいてくれるとうれしいな