当前位置:  技术问答>linux和unix

求助:C++在读文件时,调用grep

    来源: 互联网  发布时间:2016-07-15

    本文导语:  我用C++打开一个文本文件, 并用getline(ifs, strLine, 'n')方法,依次读取其中的每一行。 在读出每一行字符串后, 希望调用grep方法,判断是否包含所需的信息。 请问,该如何实现呢? 谢谢!! | ...

我用C++打开一个文本文件,
并用getline(ifs, strLine, 'n')方法,依次读取其中的每一行。

在读出每一行字符串后,
希望调用grep方法,判断是否包含所需的信息。

请问,该如何实现呢?
谢谢!!

|
我给的是C的:

/* ls -l| grep ^d */

#include 

#define MAX 1024

main(int argc,char **argv){
  char msg[MAX+1];

  FILE *fp1=popen("ls -l","r");
  FILE *fp2=popen("grep ^d","w");

  while(fgets(msg,sizeof(msg),fp1)){
fputs(msg,fp2);
  }

  pclose(fp1);
  pclose(fp2);

  return 0;
}


|
/********************************************************
* function:match
* purpose:正则表达式匹配
* return: 1:匹配成功  0:不存在匹配的子字符串 
* string : 查找字符串   pattern:正则表达式字符串,例 "{aaa}|{bbb}"
*********************************************************/  
int match(const char* string, char* pattern)
{
int i;
regex_t re;
char buf[256];
i = regcomp(&re, pattern, REG_EXTENDED | REG_NOSUB);
if (i != 0)
{
(void) regerror(i, &re, buf, sizeof buf);
//printf("%sn",buf);
return(0);
}
i = regexec(&re, string, (size_t) 0, NULL, 0);
regfree(&re);
if (i != 0)
{
(void) regerror(i, &re, buf, sizeof buf);
//printf("%sn",buf);
return(0);
}
return(1);
}

|
为甚么要用 grep  ?

strstr 函数就可以实现查找。

|
如果你要 用 grep , 不如 :
直接获取

cat filename | grep "aaa" | grep "bbb"


|
用regcmp()加regexec()

|
把fp1命令改成 cat YOUR_FILE 吧。

"cat YOUR_FILE|grep ..."

|
popen吧,CPP里应该也有。

|

是啊 

|
装一个正则库呵呵。

    
 
 

您可能感兴趣的文章:

  • 求助关于Fodero13的C++环境问题
  • [求助]C++程序中怎么从URL取数据?
  • 求助:在Linux下有什么好的C++编辑器呢(在线等)
  • C++如何调用库里面的C函数?求助~~
  • 求助高手:C++在Unix下碰到的问题
  • 求助c移植到c++时要注意的问题
  • 求助:C++ Templates编译问题,多谢!
  • linux下C++编程世界难题,求助
  • 菜鸟求助Linux C++高手
  • ▲ 紧急求助: 如何在打开一个链接时,调用一个JAVABEAN ? ▲
  • 重分求助!!!!javascript如何调用客户端dll问题
  • [求助]如何获取一个程序所使用的系统调用和参数?
  • 高分求助:在java中如何调用outlook express,急,急,急!!
  • 【求助】:如何用ioctl()函数调用一个驱动程序
  • 求助:能给出一个在jsp里调用ActiveX控件的代码吗?
  • 求助!!shell调用问题
  • [求助]popen 函数引起 shell 调用, sh 成为僵尸进程.
  • 求助:内核系统调用的使用问题
  • 【求助】如何增加一个系统调用
  • 求助关于Java调用shell再传值给shell的问题
  • 求助socket编程问题:C/S模式.客户端调用Winsock函数connect()的时候,返回错误码是10065(主机路由不可达).
  • 高分求助有关利用Linux的系统调用read()实现
  • 求助panel之间方法调用的问题(非常焦急)
  • linux共享库调用求助
  • 求助 ubuntu系统下C开发调用内核函数总报ndefined reference错误
  • 100分急求助linux 下如何调用api来控制软件的读入数据的方式?面试的题,在线等!帮帮小弟忙呀!
  • 系统调用小实验_新手求助
  • 有关fork()调用的初级问题,急急急!!!高分求助。
  • 【求助】子进程中调用raise(SIGSTOP)的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 新装linux求助 iis7站长之家
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3