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

//实现在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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值