注目の書籍

好評発売中!

知識ゼロから始めるLinuxサーバーの作り方

Linux初心者でも
本格 サーバーが“即席”で 完成!自宅サーバー
クラウド化も!

必聴講座ご紹介

Cloud Days Tokyo 2012
クラウド時代を勝ち抜く企業戦略を考える

エムオーテックス


Cloud Days Tokyo 2012
クラウド時代の企業インフラとユーザー環境の姿

ヴイエムウェア


Cloud Days Osaka 2012
クラウドでIT維新を〜ビジネスを加速させるベストプラクティス

アマゾン データ サービス ジャパン

オープンソース/Linux

Linuxコマンド逆引き大全

日経Linux

【 ファイルから文字列を検索する 】

2006/02/28
 Linuxコマンド逆引き大全
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

 ファイルから文字列を検索する
$ grep "Linux" target_file

 テキスト・ファイルから特定の文字列を含む(論理)行を抜き出すには,「grep」コマンドを用いる。grepの後に検索したい文字列を指定し,さらにその後に検索対象とするファイルを指定する。


$ grep "Linux" target_file

 検索結果は標準出力に出てくるので,検索結果をファイルに残したい場合はリダイレクトを用いる。


$ grep "Linux" target_file > result

 また,正規表現を用いることにより,「yyyy/mm/dd」のフォーマットで表記されている日付も探せる。正規表現を用いる場合は,「-e」オプションを付ける。


$ grep -e "[0-9]\{4\}/[0-9]\{2\}/[0-9]\{2\}" target_file

 詳しくは「どのような正規表現があるのか」を参照のこと。


 応用:「Linux」という文字列が何行存在するかを調べる
$ grep -c "Linux" target_file

 応用:「2004年」という文字列が存在しない行を調べる
$ grep -v "2004年" target_file

 応用:拡張子が"txt"であるファイルについて,文字列"Linux"を探す
$ find . -type f -name "*.txt" | xargs grep "Linux"

 findで特定のファイルを絞り込んだ後に,「xargs」コマンドでファイル名のリストを作成し,grepでそれらファイルの検索を行う。


 応用:検索する際,大文字・小文字を区別しない
$ grep -i "LiNuX" target_file

 "Linux","linux","LINUX"など大文字・小文字を区別せずに検索結果として扱われる。


この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介