フォルダから特定の文字を含むファイルを検索 ack, grep, find
2017/09/29
フォルダから特定の文字を含むファイルを検索 ack, grep, find
実際の生活でも鍵はどこへ行ったiPhoneはどこいったなど探し物をする人は多くいますが、
Linuxの世界でもあの文字を含んだファイルがどこにあるんだ!?
となることが多々あります。
htmlやphp,そしてcssを編集する際に特定の文字を含んだファイルを簡単に探せると便利です。
今回はack, grepそしてfindの三つを紹介します。
それぞれ同じ目的、文字列を含んだファイルを探すことです。
findやgrep知ってるよ〜というdo-you-linux.com読者の皆さんもackなんじゃそれ?となるでしょうか。
インストールが必要か不要か見やすさはどうか5段階の★で評価します。
基準として3が普通です。5が素晴らしく良いです。
インストール必須だが簡単 & 表示が綺麗 ack
インストール:必須
見やすさ: ★★★★★ 5
Ubuntuでのインストール
[bash]
sudo apt-get -y install ack-grep
[/bash]
Fedoraでのインストール
[bash]
sudo dnf -y install ack
[/bash]
使い方の例
Ubuntuでの使い方
[bash]
ack-grep 'pattern'
[/bash]
Fedoraでの使い方
[bash]
ack 'pattern'
[/bash]
探したい特定の文字をpatternの代わりに入れてください。画像上ではsendRequeset探したのでack "sendRequest"としました。
検索語句にマッチした所をハイライトしてくれるのでとても見やすいです。
有名所 grep
インストール:不要
見やすさ: ★★★★☆ 4
使い方の例
[bash]
grep -rnw /home/user/ -e 'pattern'
[/bash]
今回は検索ディレクトリに/home/user/を指定しましたがお好きなディレクトリをご指定ください。
grepで検索した結果も見やすいですね。
インストールが不要なので多くのLinuxで標準動作します。
個人的にはgrepがバランスが良いなと。
よく使う find
インストール:不要
見やすさ: ★★★☆☆ 3
使い方の例
[bash]
sudo find /home/user/ -type f -print | xargs grep 'pattern'
[/bash]
筆者はこのfindをよく使うのですが、今回この記事を紹介するにあたって知ったackを使うと見やすさは段違いで悪いですね。
しかしインストール不要で多くのLinuxで標準動作するので便利です。
.phpや.htmlとファイルタイプを指定して検索すると楽です。
[bash]
sudo find /var/www/ \( -name '*.php' -o -name '*.html' \) | xargs grep 'pattern'
[/bash]
今回はack, grepそして findの三つを紹介しましたが一つでも気に入ったものがあったでしょうか。
他にもこんなやり方あるぜ!なんてハードコアな方がいればコメント欄からお披露目下さい!
それではdo-you-linux.com読者の皆さんも良い週末を!
ackのソース
StackOverflow http://stackoverflow.com/questions/16956810/how-to-find-all-files-containing-specific-text-on-linux