您的位置:首页 > 运维架构 > Shell

通过shell命令提取文件内容(C实现)

2016-09-13 15:04 363 查看
一、需求说明   

    项目中需要提取/etc/fh_version文件中的软件版本号,该文件的内容如下:

[root@FiberHome]cat /etc/fh_version
FH_DEVICE_TYPE="LG522"
FH_SOFTWARE_VER="L04Y1.03M00"
FH_HARDWARE_VER="V1.0"
FH_OPERATOR=CM
   需要提取出上面文件中的软件版本号:L04Y1.03M00

二、shell命令实现


该内容可以通过下面的命令提取出来:

[root@FiberHome]cat /etc/fh_version | grep FH_SOFTWARE_VER | cut -d\" -f 2
L04Y1.03M00</span>


三、C代码实现

void get_cmd_res(const char *cmd, char *res_string)
{
FILE *fp;
DEBUG_LOG("-----cmd:%s\n",cmd);
if ((fp = popen(cmd, "r")) == NULL)
{
DEBUG_LOG("popen failed\n");
return;
}
if (res_string != NULL)
{
fscanf(fp, "%s", res_string);
DEBUG_LOG("read cmd result\n");
}
pclose(fp);
DEBUG_LOG("result:%s.\n",res_string);

return;
}

int main()
{
    char cmd[128]="cat /etc/fh_version | grep FH_SOFTWARE_VER | cut -d\\\" -f 2";
    char result_str[32]={0};

    get_cmd_res(cmd, result_str);
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言