1.软文推荐

2.软文推荐

3.软文推荐

linux系统如何按照文件名模糊查找文件?下面良许教程网为大家分享一下Linux系统按照文件名模糊查找文件的具体方法,有需要的小伙伴可以参考一下。

fnmatch
 int fnmatch(const char *pattern, const char *string, int flags);
参数说明

FNM_NOESCAPE 如果这个标志设置了,处理反斜杠为普通字符,而不是转义字符。 FNM_PATHNAME 如果这个标志设置了,string 里的斜杠只匹配 pattern 里的斜杠,它不能匹配星号(*)或问号(?)元字符,也不能匹配包含斜杠的中括号表达式([])FNM_PERIOD 如果这个标志设置了,string 里的起始点号必须匹配 pattern 里的点号。一个点号被认为是起始点号,如果它是string 第一个字符,或者如果同时设置了 FNM_PATHNAME,紧跟在斜杠后面的点号。 FNM_FILE_NAME 这是 FNM_PATHNAME 的 GNU 同义语。 FNM_LEADING_DIR 如果这个标志(GNU 扩展)设置了,模式必须匹配跟随在斜杠之后的 string 的初始片断。这个标志主要是给 glibc 内部使用并且只在一定条件下实现。 FNM_CASEFOLD 如果这个标志(GNU 扩展)设置了,模式匹配忽略大小写。

返回值

0:string 匹配 pattern; FNM_NOMATCH:没有匹配;或者其它非零值,如果出错。

示例

示例代码如下:

 #include 
 #include 
 #include 
 #include 
 #include 
 #include 
 #include 
 
 using namespace std;
 
 
 vector WildcardSearch(const char* pattern,const char* filePath)
 {
     vector res;
     struct dirent *entry;
     DIR *dir;  
     int ret;
 
     dir = opendir(filePath);
     if(dir != NULL)
     {
         while((entry = readdir(dir)) != NULL)
         {
             ret = fnmatch(pattern,entry->d_name,FNM_PATHNAME | FNM_PERIOD);
             if(ret == 0)
             {
                 res.push_back(entry->d_name);              
             }
             else
             {
                 continue;
             }
         }
     
     }
 
     closedir(dir);
     return res;
 }
 
 
 int main(int argc,char*argv[])
 {
     vector tmp;
     char* pattern = argv[1];
     char* path = argv[2];
     
     tmp = WildcardSearch(pattern,path);
 
     for(int i=0;i

例如:

 ./test "2018-*.bmp" ./path

至此关于Linux系统按照文件名模糊查找文件的教程分享结束,各位小伙伴有任何疑问都可以在评论区留言。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

本文来源:www.lxlinux.net/1381.html,若引用不当,请联系修改。

相关文章 8

1

阿里云国际版购买云服务器:国际阿里云分销商,注册充值教程(阿里云国际版购买国内 3分钟前

很多童鞋喜欢去阿里云国际版购买云服务器,但是我们都知道阿里云国际版使用国内身份信息是无法注册的,需要信用卡或者非大陆的PayP...

2

Fedora 23如何安装LAMP服务器 5分钟前

lamp就是Web应用软件组合,是由 Linux、 Apache HTTP 服务、 MySQL/MariaDB 数据库和 PHP、 Perl 或 Python 的简称。 下面教你如何在 Fedora 23 服务器上安装...

3

Linux常用命令—screen命令 8分钟前

Linux常用命令 Screen 是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并...

4

VMISS:香港CN2/韩国CN2/美国CN2/日本IIJ VPS,全场7折,月付3.5加元起 10分钟前

vmiss本月7折活动任然在继续,商家提供香港CN2、韩国CN2、美国CN2 GIA/AS9929、日本IIJ等机房线路VPS主机,基于KVM架构,100M-1Gbps大带宽,优惠后...

5

Ubuntu 中卸载 deb 包具体方法 12分钟前

在本教程中,我将详细介绍如何找到确切的包名称,然后使用它来删除应用。我还将讨论使用图形方法删除 deb 包。 img 从 .deb 文件安装应用...

6

edgenat:韩国CN2独立服务器(原生IP)840/月,韩国CN2 VPS、美国cera VPS仅48元/月起 14分钟前

edgenat怎么样? edgenat当前针对接入CN2+BGP网络的韩国服务器(高配独立服务器)以及全场所有VPS搞特价促销活动:月付7折,年付(仅需支付10个月...

7

阿里云新用户福利活动:ECS共享型n4,国内vps仅38/年(阿里云新用户福利怎么领) 16分钟前

阿里云新用户福利活动,阿里云新用户拼团新年伊始也开始打折了,主要涉及的ECS云服务器、MYSQL数据库等产品,不过仍旧是新客专享(即必...

8

Linux系统如何更换yum源 19分钟前

yum的主要用途是对rpm包进行管理,包括安装、卸载、升级等,但是用yum安装软件时,经常发现我们的yum源里面没有该软件,那么就需要我们自...