フォルダから特定の文字を含むファイルを検索 ack, grep, find

      2017/09/29

フォルダから特定の文字を含むファイルを検索 ack, grep, find

フォルダから特定の文字を含むファイルを検索 ack, grep, find

実際の生活でも鍵はどこへ行ったiPhoneはどこいったなど探し物をする人は多くいますが、
Linuxの世界でもあの文字を含んだファイルがどこにあるんだ!?
となることが多々あります。
htmlやphp,そしてcssを編集する際に特定の文字を含んだファイルを簡単に探せると便利です。
今回はack, grepそしてfindの三つを紹介します。
それぞれ同じ目的、文字列を含んだファイルを探すことです。
findやgrep知ってるよ〜というdo-you-linux.com読者の皆さんもackなんじゃそれ?となるでしょうか。
インストールが必要か不要か見やすさはどうか5段階の★で評価します。
基準として3が普通です。5が素晴らしく良いです。




インストール必須だが簡単 & 表示が綺麗 ack

インストール:必須
見やすさ: ★★★★★ 5
フォルダから特定の文字を含むファイルを検索 ack, grep, find

Ubuntuでのインストール

sudo apt-get -y install ack-grep

Fedoraでのインストール

sudo dnf -y install ack

使い方の例
Ubuntuでの使い方

ack-grep 'pattern'

Fedoraでの使い方

ack 'pattern'

探したい特定の文字をpatternの代わりに入れてください。画像上ではsendRequeset探したのでack "sendRequest"としました。
検索語句にマッチした所をハイライトしてくれるのでとても見やすいです。


有名所 grep

インストール:不要
見やすさ: ★★★★☆ 4
grep

使い方の例

grep -rnw /home/user/ -e 'pattern'

今回は検索ディレクトリに/home/user/を指定しましたがお好きなディレクトリをご指定ください。
grepで検索した結果も見やすいですね。
インストールが不要なので多くのLinuxで標準動作します。
個人的にはgrepがバランスが良いなと。


よく使う find

インストール:不要
見やすさ: ★★★☆☆ 3

使い方の例

sudo find  /home/user/ -type f -print | xargs grep 'pattern'

筆者はこのfindをよく使うのですが、今回この記事を紹介するにあたって知ったackを使うと見やすさは段違いで悪いですね。
しかしインストール不要で多くのLinuxで標準動作するので便利です。
.phpや.htmlとファイルタイプを指定して検索すると楽です。

sudo find /var/www/ \( -name '*.php' -o -name '*.html' \) | xargs grep 'pattern'

今回はack, grepそして findの三つを紹介しましたが一つでも気に入ったものがあったでしょうか。
他にもこんなやり方あるぜ!なんてハードコアな方がいればコメント欄からお披露目下さい!
それではdo-you-linux.com読者の皆さんも良い週末を!

ackのソース
StackOverflow http://stackoverflow.com/questions/16956810/how-to-find-all-files-containing-specific-text-on-linux







0 0 votes
参考になった

 - Linuxの取り説 , , , , , ,

0
何か感じたことがあればぜひコメントをどうぞ!x