gpt4 book ai didi

c - 如何在程序中grep一个字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:48 24 4
gpt4 key购买 nike

#include <stdlib.h>

int foo(char *str_buf_to_grep)
{
// How to write the following line correctly?
return system("??? str_buf_to_grep ??? | grep mykeyword");
}

描述:

  1. str_buf_to_grep以任何方式给出,可能是文本文件的内容,可能很长很复杂,甚至包含特殊字符,如|

  2. 我想使用 grep 命令来查找匹配的行,而且模式可能非常复杂。

我应该如何实现?

最佳答案

从技术上讲,您正在寻找的是:

char cmd[1024];
sprintf(cmd, "echo '%s' | grep mykeyword", str_to_grep);
return system(cmd);

如果您的 str_to_grep 中包含单引号 ('),这将不起作用。您需要将单引号替换为斜线+引号 (\') 以避免 shell 插值。

但是,我无法理解您为什么要使用 grep 命令,而不是使用 strstr() 函数,如下所示:

strstr(str_to_grep, "mykeyword");

后者总是更高效、更少输入、更便携且更不容易出错。

关于c - 如何在程序中grep一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30714247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com