gerp(1):查找文件中指定的字符串,并打印该行
2012-07-29 09:40
302 查看
/** @autho: yj * @function: like gerp command in linux: find lines with a specified string in a file, and print these lines. * @usage: ./grep [string] [filename] **/ #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 100 int strindex(char s[], char t[]); int main(int argc, char *argv[]) { int i; char c; FILE *fp; int found = 0; char str[MAX]; // keep a line read from a file if(argc < 3) { fprintf(stderr, "Not enough arguments\n"); exit(-1); } if((fp = fopen(argv[2], "r")) == NULL) { fprintf(stderr, "File open failed\n"); exit(-1); } /*read one line from a file*/ while(!feof(fp)) { for(i=0; i<MAX-1 && (c = fgetc(fp)) != EOF && c != '\n'; i++) { str[i] = c; } if(c == '\n') str[i++] = '\n'; str[i] = '\0'; //if(c == EOF) // break; if(strindex(str, argv[1]) >= 0) { printf("%s", str); found++; } } printf("total lines: %d\n", found); return found; } /*find position of string t[], and return position; if not exist, return -1 */ int strindex(char s[], char t[]) { int i, j, k; for(i=0; s[i] != '\0'; i++) { for(j=i, k=0; t[k]!='\0' && s[j]==t[k]; j++, k++) ; if(k > 0 && t[k] == '\0') //t[k] = '\0' means completely similar return i; } return -1; }
相关文章推荐
- 编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- 【代码】当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径
- python 文件和目录 当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- Python 在当前目录以及其子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- python-------------------查找文件名包含指定字符串的文件,打印完整路径
- 编写一个Python程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径
- Python:编写函数,能在当前目录以及子目录下查找文件名包含指定字符串的文件,并打印出完整路径
- 在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径
- java 多线程查找文件夹下所有文件中指定的字符串
- 文本文件存在字符串数组,再按指定行截取,可以用来拆分文件。打印显示效果
- Linux查找当前目录及其子目录下所有包含指定字符串的文件
- 查找包含指定字符串的文件
- Linux-在指定文件类型中递归查找到目标字符串
- window查找指定字符串在当前目录下的所有文件中是否存在
- Linux Bash:在用户输入目录中查找含有某字符串的文件,打印行号
- 查找目录下的所有文件中是否含有某个字符串 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件
- 批处理查找和替换文件指定字符串
- 嵌入式 简单的读取文件并打印指定字符串的值
- 在TXT文件中查找指定字符串并显示指定字符串所在行的内容
- MyEclipse如何查找指定工程下所有或指定文件中特定字符串并且可进行批量替换