栃木,Web,WordPress,スマートフォン,野球,ラグビーなど
Linux検索コマンド find(xargs,exec)、grep、locate
grep → ファイル内から指定した文字列を含む行を検索する。
find → ディレクトリツリーの中から指定した文字列を含むファイルを検索する。
■seibulions.txtから「”aaaa”または”bbbb”」を含む行を検索。
grep “aaaa\|bbbb” seibulions.txt または
grep -e “aaaa” -e “bbbb” seibulions.txt
■seibulions.txtから「”aaaa”かつ”bbbb”」を含む行を検索。
grep “aaaa” seibulions.txt | grep “bbbb”
■/home/seibu配下のディレクトリツリーのテキストファイルの中から、”aaaa”を含むファイルを検索。
find /home/seibu/ -name \*.txt -print0 | xargs -0 grep “aaaa”
※xargsコマンドは、標準入力から引数を読み込み指定コマンドを実行するため、
findコマンドで見つかった全てのファイルのパスを’一度に’grepコマンドに渡してくれる。
※execを使った場合↓、’ファイル数分’grepコマンドが実行されるので時間がかかる。
find /home/seibu/ -name \*.txt -exec grep “aaaa” {} \;
※ファイル・ディレクトリ検索ならlocateコマンドの方が高速。
locate seibulions.txt と
find . -name ‘seibulions.txt’ -print は同意。
※FreeBSD 7.1でも、find -xargs、find -execともに使えるようです。
印刷 | この記事は ohsexybaby によって 2011/02/04 1:41 AM に投稿されました, Linux, Web 以下に保存されています。 RSS 2.0 を通してコメントをフォローする。 コメントを残すか、ご自分のサイトからトラックバックできます。 |