如何在目录中的文件名中收集具有特定关键字的文件

时间:2016-02-03 01:20:06

标签: bash perl shell if-statement for-loop

我有一个包含多个文件的目录。我的要求是,我必须根据特定的关键字搜索文件名(而不是文件数据)并打印该文件名。

例如

ABC是目录。下面是文件

 AEXP/INC/ARP.txt
 AEXP/OPC/ARP.txt
 AEXP/INC/PQW.txt

我希望文件包含关键字INC

预期产出:

AEXP/INC/ARP.txt
AEXP/INC/PQW.txt

我试过这个逻辑,但是它运作不正常

#!/bin/sh

for FILE in ABC/* do
    if [[ $file =~ /INC/i ]] then
        echo success;
    else
        echo fail;
    fi
done

请帮助我找到正确的答案。 bash脚本,Perl,正则表达式,一切都很好。

2 个答案:

答案 0 :(得分:2)

在Linux上你可以使用" find"。在Ubuntu shell上,它看起来像:

find . -name "*INC*" -print

答案 1 :(得分:1)

这个怎么样:

cd ABC
ls -d */INC/*

是否还需要检查大写/小写变体?