使用Linux中的命令行参数查找带有模式的文件名

时间:2014-10-16 12:03:25

标签: regex find command-line-arguments

因此,在我的系统编程课程中,我们被问到一个问题,即如何搜索七个字母长的所有文件名,以'F'开头,第五个字母是'o'。我很困惑如何正确地做到这一点。我假设它涉及使用find和正则表达式的组合。我尝试使用类似grep的语法,但我根本没有运气。如果有人可以帮我制定正确的语法来列出遵循上述模式的所有文件,那将非常感谢!

我前进的方向:

find . -name [this is what I need help with] -type file

1 个答案:

答案 0 :(得分:0)

有很多方法。你可以使用

find ./ -regex ".*/F...o..$" -type f

但是找到将regex应用于文件的完整相对路径,而不仅仅是文件名本身,并且需要相应地编写正则表达式(这就是我在文件名本身之前匹配。* /的原因)。输出还将包含文件的实际路径。

或者你只能列出没有路径的文件名(每个文件名在不同的行上),其中find和pipe输出到grep:

find . -type f -printf "%f\n" | grep -e "^F...o..$"