免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 121433107
打印 上一主题 下一主题

[学习共享] 如何查找文件名中含有test字段的所有文件,并把文件名中包含test字段最新文件找出来 [复制链接]

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
21 [报告]
发表于 2016-04-25 09:18 |只看该作者
1. popen  和 system 结合, 你知道用shell 命令得到你要的结果, 这个还是比较好弄了
2. man   opendir, readdir, 再结合stat 应该也可以解决

论坛徽章:
0
22 [报告]
发表于 2016-04-25 11:12 |只看该作者
不大懂,兄弟能弄一个小例子吗? 回复 21# elu_ligao


   

论坛徽章:
0
23 [报告]
发表于 2016-04-25 11:13 |只看该作者
本帖最后由 121433107 于 2016-04-25 11:19 编辑

基于我之前的回复,是用shell实现的,现在这个流程要用c实现,如何实现?比如之前我查到四个test文件。 如何找出最新的一个?回复 21# elu_ligao


   

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
24 [报告]
发表于 2016-04-25 11:36 |只看该作者
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>

  4. int main(int argc, char *argv[])
  5. {
  6.         char cmd[40] = {0};
  7.         FILE *fp;

  8.         sprintf(cmd, "ls -tr /usr/bin/test*.txt | tail -1");

  9.         if(NULL == (fp=popen(cmd, "r")))
  10.         {
  11.                 perror("popen");
  12.                 return -1;
  13.         }

  14.         memset(cmd, 0, sizeof(cmd));
  15.         fgets(cmd, sizeof(cmd), fp);
  16.         cmd[strlen(cmd)-1] = 0;
  17.         pclose(fp);

  18.         printf("cmd[%s]\n", cmd);

  19.         return 0;
  20. }
复制代码

论坛徽章:
0
25 [报告]
发表于 2016-04-25 13:52 |只看该作者
你好:我发现一个问题,如果在 usr/bin/下。有一个目录名叫 test_3333_5.txt,那这个时候。貌似输出就是这个目录名,有什么办法只针对当前文件进行操作????回复 2# hz_oracle


   

论坛徽章:
0
26 [报告]
发表于 2016-04-25 13:52 |只看该作者
你好:我发现一个问题,如果在 usr/bin/下。新建一个目录名叫 test_3333_5.txt,那这个时候。貌似输出就是这个目录名,有什么办法只针对当前文件进行操作????回复 24# elu_ligao


   

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
27 [报告]
发表于 2016-04-25 13:53 |只看该作者
...  这里呀
sprintf(cmd, "ls -tr /usr/bin/test*.txt | tail -1");
你把这里改成你的shell 命令就是了

论坛徽章:
0
28 [报告]
发表于 2016-04-25 13:54 |只看该作者

你好:我发现一个问题,如果在 usr/bin/下。新建一个目录名叫 test_3333_5.txt,那这个时候。貌似输出就是这个目录名,有什么办法只针对当前文件进行操作????
99超人 发表于 2016-04-20 14:18
ls -lrt usr/bin/test*|awk 'END {print $NF}'

论坛徽章:
0
29 [报告]
发表于 2016-04-25 13:54 |只看该作者

你好:我发现一个问题,如果在 usr/bin/下。新建一个目录名叫 test_3333_5.txt,那这个时候。貌似输出就是这个目录名,有什么办法只针对当前文件进行操作????
hz_oracle 发表于 2016-04-20 13:57
ls -lt /usr/bin |awk '$9 ~/test/{print $9}' | sed -n '1p'

论坛徽章:
0
30 [报告]
发表于 2016-04-25 14:02 |只看该作者
这个不对啊,比如当前有三个test*.txt, 还有一个目录名也叫test***.txt的。如果目录名时间是最新的。结果就输出这个目录名了。我想要的是三个文件的对比。而不是目录名
elu_ligao 发表于 2016-04-25 13:53
...  这里呀
sprintf(cmd, "ls -tr /usr/bin/test*.txt | tail -1");
你把这里改成你的shell 命令就是了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP