Linux在C中调用shell命令获取文件的行数和列数

   //cat ./data/test.txt | grep  -n  " " | awk -F ":" '{print $1}' |tail -n1
    //cat ./correction/test.txt | awk  -F  ' '  '{print NF}' | head -n1
  #define MAX_BUFF_LEN (128)
  void getRowAndCol(char * formatPath)
  {

    //cat ./data/test.txt | grep -n " " | awk -F ":" '{print $1}' |tail -n1
    //cat ./correction/test.txt | awk -F ' ' '{print NF}' | head -n1
    int row, col;
    char cmd[MAX_BUFF_LEN] = {0};
    char buffer[MAX_BUFF_LEN]= {0};
    FILE *pf;
    sprintf(cmd, "cat %s | grep -n \" \" | awk -F \":\" '{print $1}' | tail -n1",formatPath);
    system(cmd);
    pf = popen(cmd, "r");
    fread(buffer, sizeof(buffer), 1, pf);
    row = atoi(buffer);
    pclose(pf);

    memset(cmd, 0, MAX_BUFF_LEN);
    memset(buffer, 0, MAX_BUFF_LEN);
    sprintf(cmd, "cat %s |awk -F ' ' '{print NF}' | head -n1", formatPath);
    system(cmd);
    pf = popen(cmd, "r");
    fread(buffer, sizeof(buffer), 1, pf);
    col = atoi(buffer);
    pclose(pf);

  }

 

posted @ 2020-11-17 13:38  雲淡風轻2020  阅读(791)  评论(0)    收藏  举报