grep コマンドで複数ファイルから検索

grep コマンドで複数ファイルから検索

* というワイルドカードを使うことで
複数ファイルの中から該当する部分を表示することができる

今回は centos の key ファイルの場所について調べたいので
まずは config ファイルを調べる

ll /etc/ssh/*config

すると該当するのが2つある

-rw-r--r--. 1 root root 2047 11月 13 17:54 2014 /etc/ssh/ssh_config
-rw-------. 1 root root 3913  3月  7 20:54 2014 /etc/ssh/sshd_config

本来なら

cd /etc/ssh
sudo grep key ssh_config sshd_config

というように
ファイルを2つ指定して行うけど
もっとたくさんの設定ファイルになってくると
これは非効率的

なので *をつかって複数ファイルを対象に調べる

sudo grep key /etc/ssh/*config

結果はどちらでも同じになる

/etc/ssh/sshd_config:#HostKey /etc/ssh/ssh_host_key
/etc/ssh/sshd_config:#HostKey /etc/ssh/ssh_host_rsa_key
/etc/ssh/sshd_config:#HostKey /etc/ssh/ssh_host_dsa_key
/etc/ssh/sshd_config:# Lifetime and size of ephemeral version 1 server key
/etc/ssh/sshd_config:#PubkeyAuthentication yes
/etc/ssh/sshd_config:#AuthorizedKeysFile	.ssh/authorized_keys
/etc/ssh/sshd_config:# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
/etc/ssh/sshd_config:# Change to no to disable s/key passwords

このワイルドカードと呼ばれる*の一斉検索は
ソースコードなどをみるときにも使える

また、 -r オプションで検索すれば
ファイル名ではなく、ディレクトリを指定して調べることもできる

例えば
wordpress の投稿内容を表示する
the_content
をテーマのどこにあるか調べるのなら

grep -r the_content /var/www/html/wordpress/wp-content/themes/twentyfifteen/

とすれば

/var/www/html/wordpress/wp-content/themes/twentyfifteen/content-page.php:	<?php the_content(); ?>
/var/www/html/wordpress/wp-content/themes/twentyfifteen/content-link.php:	the_content( sprintf(
/var/www/html/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:	$has_url = get_url_in_content( get_the_content() );
/var/www/html/wordpress/wp-content/themes/twentyfifteen/image.php:		the_content();
/var/www/html/wordpress/wp-content/themes/twentyfifteen/content.php:	the_content( sprintf(


という結果になる

なお、ソースコードを調べる場合
量がおおいときもあるので
そんなときには
less コマンドをつかうと見やすくなる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です