unix grep命令的大致实现
生活随笔
收集整理的這篇文章主要介紹了
unix grep命令的大致实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用到了strstr(a,b)函數和getline()函數,strstr(a,b)函數看是否能在字符串a中找到字符串b,若找到返回指向,若沒找到返回NULL
strstr實現可以看:Implement strStr()
grep -xn 模式 ?==>就是找出沒有該模式的行并打印。
代碼:
#include <stdio.h> #include <string.h> #define MAXLINE 1000/*打印所有與第一個參數指定的模式相匹配的行*/ int main(int argc, char const *argv[]) {char line[MAXLINE];int c,found=0,except=0,number=0;int lineno=0;if(argc==1) return -1;while(--argc>0&& (*++argv)[0]=='-'){while(c=*++argv[0]){switch(c){case 'x':except=1;break;case 'n':number=1;break;default:printf("Find:illegal option %c\n",c);argc=0;found=-1;break;}}}while(found!=-1&&fgets(line,MAXLINE,stdin)>0){lineno++;if(except==1&&strstr(line,*argv)==NULL){if(number) printf("%d:",lineno);printf("%s",line);found++;}}return found; }?
轉載于:https://www.cnblogs.com/fightformylife/p/4348529.html
總結
以上是生活随笔為你收集整理的unix grep命令的大致实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git修改分支名称(local rem
- 下一篇: visual studio xcopy