如何根据数组查找文件

如何根据数组查找文件

我有一个包含文件名列表(不带扩展名)的数组,例如:

filearray=("fileA" "fileB" "fileC")

这些文件分布在多个目录中。当我循环遍历目录时,我想对每个目录中存在的数组中的文件执行操作。如何对数组使用 find 或 grep?

我可以做这样的事情吗?:

Dirarray= ("dirA" "dirB")
for Dir in "${Dirarray[@]}"; do
    cd "$Dir";
    for file in "${filearray[@]}"; do
        if find . -regextype posix-extended -regex "$file"; then;
            do X;
        fi;
     done
done

谢谢!

答案1

我会用不同的方式来做。

Dirarray= ("dirA" "dirB")
for Dir in "${Dirarray[@]}"; do
    cd "$Dir"
    for file in "${filearray[@]}"; do
# Here a change. If "$file" exists...
        if [[ -e "$file"]]; then
            : # do something
        fi
     done
done

请参阅man test参考资料 来了解更多文件测试选项。

原因是这种方式要简单得多。好吧,只要数组不包含正则表达式即可。

相关内容