« うーん | メイン | 忘備録 »

Linuxのコマンドライン

メモ

特定のディレクトリ配下のファイル内の文字列を検索したい場合。

grep "sampletxt" filename
だと1ファイルしか指定出来ないので
find .directory_pass -type f | xargs grep "sampletxt"
findで検索 directory_pass -type f そのディレクトリパス内でファイルタイプがファイルの物を絞り込んで | xargs grep 以降でgrepを実行する。

どうやら

grep "sampletxt" sample/directory/*

でもいけるみたいだけど、シェルのサイズがOSの制限を越えると実行されないらしいので、
find から絞り込んだほうがいいような気がする。

拡張子まで確定してれば

find .directory_pass -name \*.php -print | xargs -n 10 grep "sampletxt"

みたいに指定してしまってもいいかもしれない。

というかそもそもdirectory_passで指定せずに

cd /directory_pass

してから指定してあげたほうが、シェルの吐き出し量含めて効率いいんだろうな。

参考:
http://x68000.q-e-d.net/~68user/unix/pickup?xargs

トラックバック

このエントリーのトラックバックURL:
http://yuiki.net/blog/mt-tb.cgi/228

コメントを投稿

About

2008年02月01日 19:31に投稿されたエントリーのページです。

ひとつ前の投稿は「うーん」です。

次の投稿は「忘備録」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.36