粘贴在终端执行效果最佳,这样只需要执行一次完整脚本,然后接下来再查找内容就只需从第3步复制粘贴到终端执行了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 1. 遍历一级目录中满足 *P*IE* 条件的目录
mapfile -t dirs1 < <(find ./ -maxdepth 1 -name "*P*IE*" -type d);
echo "${dirs1[@]}"
# 2. 在第一次遍历中的所以一级目录下查找满足 *windows 或 *linux 的目录,不区分大小写,作为第二次遍历的结果
for ((i = 0; i < "${#dirs1[${i}]}"; i++));
do
mapfile -t -O "${#dirs2[@]}" dirs2 < <(find "${dirs1[${i}]}" -iname "*windows" -o -iname "*linux")
done
echo "${dirs2[@]}"
# 3. 在第二次遍历的目录中查找指定字符串
for ((j = 0; j < "${#dirs2[@]}"; j++));
do
find "${dirs2[${j}]}" -name "*.c"\
-o -name "*.cpp"\
-o -name "*.h"\
| xargs grep --color=always -ain\
"YPcie_Set_Read_DMA_Blk"
done
|