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-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法
- 2024-08-21【Linux】gnome桌面环境切换KDE Plasma
- 2024-08-19如何安装 VMware Tools (macOS, Linux, Windows)
- 2024-08-15Linux部署Scrapy教程:入门级指南
- 2024-07-29linux命令行下好用的性能监控工具atop
- 2024-07-04Linux系统上离线升级SSH服务的具体操作步骤-icode9专业技术文章分享
- 2024-06-0600-macOS和Linux安装和管理多个Python版本
- 2024-03-30[译]漫画SELinux概念