grep表示具有特定名称的目录中的所有文件中的字符串

use*_*171 7 directory bash grep find

我在具有这种结构的目录中有csv文件:

20090120/
20090121/
20090122/
etc...
Run Code Online (Sandbox Code Playgroud)

我想在这些目录中的所有csv文件中grep某个字符串,但仅限于2009年1月,例如200901*/*.csv

是否有可以执行此操作的bash命令行参数?

Phi*_*ost 12

是.grep "a certain string" 200901*/*.csv.


pax*_*blo 5

你需要这样的东西:

grep NEEDLE 200901*/*.csv
Run Code Online (Sandbox Code Playgroud)

(假设您的搜索字符串NEEDLE当然是 - 只需将其更改为您实际需要的任何内容).

bash壳是完全有能力扩大多层次的路径和文件名.

也就是说,当然,仅限于一个目录下的CSV文件.如果要搜索整个子树,则必须使用略微模式复杂(和自适应)find命令.

虽然,假设您可以设置深度限制,您可以使用类似的东西(三个级别):

grep NEEDLE 200901*/*.csv 200901*/*/*.csv 200901*/*/*/*.csv 
Run Code Online (Sandbox Code Playgroud)