用c语言实现grep命令
时间: 2024-04-18 18:21:42 浏览: 7
grep命令是一个非常常用的文本搜索工具,它可以在文件中查找指定的字符串,并将包含该字符串的行打印出来。下面是一个用C语言实现grep命令的简单示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 256
int main(int argc, char *argv[]) {
if (argc != 3) {
printf("Usage: ./grep <search_string> <file_name>\n");
return 1;
}
char *search_string = argv;
char *file_name = argv;
FILE *file = fopen(file_name, "r");
if (file == NULL) {
printf("Failed to open file: %s\n", file_name);
return 1;
}
char line[MAX_LINE_LENGTH];
while (fgets(line, sizeof(line), file)) {
if (strstr(line, search_string) != NULL) {
printf("%s", line);
}
}
fclose(file);
return 0;
}
```
上述代码中,我们首先检查命令行参数的数量,确保用户输入了正确的参数。然后,我们将搜索字符串和文件名保存到相应的变量中。
接下来,我们打开指定的文件,并逐行读取文件内容。对于每一行,我们使用`strstr`函数来判断是否包含了搜索字符串,如果包含则打印该行。
最后,我们关闭文件并返回0表示程序执行成功。