我需要一个 Shell 脚本,它接受两个输入,它们是
- 它必须搜索的主目录和
- 在主目录中搜索所有文件(.c 和 .h 文件)的模式
它必须打印在主目录和每个子目录中找到的模式数。
main dir --> Total pattern found = 5
|
sub dir --> 3
|
sub dir --> 2
我需要一个 Shell 脚本,它接受两个输入,它们是
它必须打印在主目录和每个子目录中找到的模式数。
main dir --> Total pattern found = 5
|
sub dir --> 3
|
sub dir --> 2
这应该这样做:
#!/bin/sh
grep -rl "$1" . | sed -r 's/\/[^\/]+$//' | sort | uniq -c
它的工作原理如下:
$1
使用参数找到提供的模式grep
-r
搜索当前目录.
和所有子目录中的所有文件-l
仅输出path/filename
具有与模式匹配的文本的文件filename
已从所有输出中删除,因此仅保留path
(即目录)它的输出将如下所示:
2 .
3 ./sub_dir1
1 ./sub_dir2
6 ./sub_dir2/a_sub_sub_dir
第一列是目录中模式的匹配数量,第二列是目录的名称(.
是主目录)。