因此,在我的系统编程课程中,我们被问到一个问题,即如何搜索七个字母长的所有文件名,以'F'开头,第五个字母是'o'。我很困惑如何正确地做到这一点。我假设它涉及使用find
和正则表达式的组合。我尝试使用类似grep
的语法,但我根本没有运气。如果有人可以帮我制定正确的语法来列出遵循上述模式的所有文件,那将非常感谢!
我前进的方向:
find . -name [this is what I need help with] -type file
答案 0 :(得分:0)
有很多方法。你可以使用
find ./ -regex ".*/F...o..$" -type f
但是找到将regex应用于文件的完整相对路径,而不仅仅是文件名本身,并且需要相应地编写正则表达式(这就是我在文件名本身之前匹配。* /的原因)。输出还将包含文件的实际路径。
或者你只能列出没有路径的文件名(每个文件名在不同的行上),其中find和pipe输出到grep:
find . -type f -printf "%f\n" | grep -e "^F...o..$"