コマンドでファイル種類を指定して検索。
phpファイルや、datファイル、rubyファイルなど拡張子を指定して検索したい。
grep DSN . -r --include=*.php
grep のmanにありました。manpage最高
これだと1階層だけしか取れない。
grep -r DSN ./*.php
これだと2階層目だけしか取れない。
grep -r DSN ./*/*.php
これあと3階層目だけしか取れない。
grep -r DSN ./*/*/*.php
組み合わせも面倒だった。
find -exec や xargsと組み合わせると面倒。catだとファイル名が出て来なかった。
なんかもっといい方法ないの。ってずっと思ってました。
行き着いたのが冒頭の方法
例。date関数を使ってるphpファイルを調べあげる。
grep "date('r')" . -r --include=*.php | grep at
grep で、date('r')を再帰的( . -r )に調べるが、phpファイルに限定する(--include=*.php)
これを応用すると、HTMLファイルを階層を潜って調べることが出来る。
manに載ってました。
やっぱりOKWAVEは当てにならないし、馬鹿だった。
linux(UNIX) の grep で、あるディレクトリ以下を再帰的に見て、全ての *.html ファイルに grep をかける方法 - Linux系OS - 教えて!goo
OKWave消えてくれ。惜しい。でもズレてる。2005年の記事をGoogleで出されてもなぁ。
検索してもOkWaveと知恵袋ばかりですね。
grep 階層 - Google 検索
manpage読んでなかった僕も人のこと言えないけど・・・さ
あえて言わせてもらう。やっぱりOKWAVEは当てにならならい。古い&OKWAVEは検索結果から消えてほしい。回答する前にManpage嫁ってことです。
2015/01/15 追記 それBashでも出来るよ
zsh最強コメントいただいたので、返信しておきます。
特定の拡張子(*.php)のファイルだけをGrepして検索したい。 - ブックマクロ開発にzsh 使えば % grep hoge **/*.php 出来るし...。
2012/04/20 17:28
zsh 使えば % grep hoge **/*.php 出来るし...。 - shag のコメント / はてなブックマーク
shopt -s globstar
これをかけば、globstar使える。
takuya@rena:~/repos/sd$ grep php **/*.php php/getMessage.php:1:<?php php/sendMessage.php:1:<?php
ま、ファイル見るだけってあんまり需要ないから、find と組合せて使うことが多いんだけども。