Linux实现cat、grep、zip
2021/10/1 7:41:10
本文主要是介绍Linux实现cat、grep、zip,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- linux cat实现
- linux grep实现
- linux zip实现
代码都比较简短,都是大致原理的实现,不再写注释。
linux cat实现
#include <stdio.h> #include <stdlib.h> int main(int argc,char *argv[]) { char *buf = malloc(sizeof(char)*1025); size_t nread; ssize_t readlen; FILE *fp = stdin; int i = 1; if(argc==1) { while((readlen=getline(&buf,&nread,fp))>0) { buf[readlen] = 0; printf("%s",buf); } return 0; } for(;i<argc;i++) { fp = fopen(argv[i],"rb"); if(fp == NULL) { printf("wcat: cannot open file\n"); return 1; } while((readlen=getline(&buf,&nread,fp))>0) { buf[readlen] = 0; printf("%s",buf); } fclose(fp); } return 0; }
linux grep实现
这个也是比较简单,没有正则,只是简单地匹配,每行查找一个子串而已。
// 同理,输入有两种形式,stdin和文件 #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc,char **argv) { char *buf = malloc(sizeof(char)*1025*64); size_t nread; ssize_t readlen; FILE *fp = stdin; int i = 2; if(argc==1) { printf("wgrep: searchterm [file ...]\n"); return 1; } if(argc==2) { while((readlen=getline(&buf,&nread,fp))>0) { buf[readlen] = 0; if(strstr(buf,argv[1])) printf("%s",buf); } return 0; } for(;i<argc;i++) { fp = fopen(argv[i],"rb"); if(fp == NULL) { printf("wgrep: cannot open file\n"); return 1; } while((readlen=getline(&buf,&nread,fp))>0) { buf[readlen] = 0; if(strstr(buf,argv[1])) printf("%s",buf); } fclose(fp); } return 0; }
linux zip实现
有点像刷题,几个例子,盲打,几个组合拳下来才能全部通过。
//这个的规则就是aaaabcc -> 4ab2c #include <stdio.h> #include <stdlib.h> void diwrite(int n,char c) { fwrite(&n,4,1,stdout); fwrite(&c,1,1,stdout); } int main(int argc,char *argv[]) { char lastc = 0; char curc; int nread; int count = 0; FILE *fp = stdin; int i = 1; if(argc==1) { printf("wzip: file1 [file2 ...]\n"); return 1; } for(;i<argc;i++) { fp = fopen(argv[i],"rb"); if(fp == NULL) { printf("wzip: cannot open file\n"); return 1; } while((nread = fread(&curc,1,1,fp))==1) { if(curc==lastc) { count++; continue; } if(count!=0) diwrite(count,lastc); count = 1; lastc = curc; } fclose(fp); } diwrite(count,lastc); return 0; }
本文同步发布于orzlinux.cn
这篇关于Linux实现cat、grep、zip的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法