【发布时间】:2016-02-03 01:20:06
【问题描述】:
我有一个包含许多文件的目录。我的要求是,我必须根据特定关键字搜索文件名(不是文件数据)并打印该文件名。
例如
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、正则表达式,什么都可以。
【问题讨论】:
-
到目前为止您尝试了哪些方法,但它为什么不适合您?请学习How to Ask 好问题,如何创建minimal reproducible example,并在您访问该站点时获取该站点的tour,以了解Stack Overflow 的工作原理。
-
perl -E "say for glob 'ABC/*/INC/*.txt'" -
我试过这个逻辑,但它不能正常工作。 #!/bin/sh for FILE in ABC/* do if [[ $file =~ /INC/i ]] then echo success;否则回显失败;完成了
-
@Naveen.Y: 难道我的 Perl 命令没有做你想做的事吗?
-
@Borodin - 它工作完美,刚才我已经测试过了。非常感谢
标签: bash perl shell if-statement for-loop