質問編集履歴

1 Linuxについてという点を追記しました。

Kenny

Kenny score 17

2015/09/07 22:32  投稿

grepでカレントディレクトリとサブディレクトリ全体を検索するには?
grepコマンドを実行した際に、カレントディレクトリのファイルとサブディレクトリのファイルすべてを検索するにはどうすればよいでしょうか?
Linuxのgrepコマンドを実行した際に、カレントディレクトリのファイルとサブディレクトリのファイルすべてを検索するにはどうすればよいでしょうか?
カレントディレクトリに、"c_file1.c" というファイルを置いてあるとします。
./c_file1.c の内容は以下の通り。
```C
/* This is c_file1.c */
int c_function_1(void){
   return 0;
}
```
また、カレントディレクトリ上の "folder1" というフォルダの中に、"c_file2.c" というファイルを置きます。
./folder1/c_file2.c の内容は以下の通り。
```C
/* This is c_file2.c */
int c_function_2(void){
   return 0;
}
```
この環境下で、カレントディレクトリから "grep" コマンドを使い、"c_function_1" と "c_function_2" を両方抽出するにはどのように実行すればよいでしょうか?
たとえば、
`$ grep -r "c_function_*" **/*.c`
を実行すると、"c_file2.c" 上の、"c_function_2" はヒットしますが、"c_file1.c" 上のコードはヒットしません。
カレントディレクトリより一つ上のディレクトリから同じコマンドを実行すれば、両方ともヒットするのですが、やりたいことは、カレントディレクトリの変更をせずにヒットさせることです。
また、"grep" コマンドに加えて、vimgrepでも同様のことをやる方法を教えてください。
  • grep

    50 questions

    grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

  • Vim

    721 questions

    VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

  • Linux

    5967 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る