我的项目的一点背景:我们有任意数量的文件,每个文件需要一个单独的进程,然后需要使用 exec() 调用进行搜索,以查找每次使用特定 KEY 时。我知道如何使用以下命令从命令行使用 grep:
grep -o KEY FILENAME.txt | wc -l > OUTPUT.txt
但我无法弄清楚如何在 C++ 中做到这一点。我在这里找到了一个线程,它给了我这条线。
execl("/bin/grep","grep",pattern,filename,NULL);
它编译并运行,所以我认为它可以工作,但问题是我需要将模式发生的次数输出到文件中,我尝试了下面的行,但预计它不起作用。它给出了这个错误“grep:out.txt:没有这样的文件或目录”
execl("/bin/grep", "grep",pattern,fileName,output,NULL);
这是我项目这一部分的方向。
您可以通过系统调用 exec() 执行此操作,为它提供 shell 可执行文件的路径(通常是 /bin/sh ),以及作为 /bin/sh 的参数的字符串 -c 和字符串对应于搜索命令( grep -o ... )。
非常感谢这里的一些指导!