Linux下两个文件,我想把文件b中第10列(已标出)部分与a第5列(已标出)相同的行输出,怎么操作? 255

希望最终得到的结果为Pp01Cufflinksexon40340406161000+.gene_id"CUFF.***";transcript_id"(a和b相同的地方)... 希望最终得到的结果为Pp01 Cufflinks exon 40340 40616 1000 + . gene_id "CUFF.***"; transcript_id "(a和b相同的地方)"; 展开
 我来答
cdyzxy
2017-04-08 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3736万
展开全部

#include<stdio.h>

#define N 256

int main() { char *p,buffer[256],str1[N][20],str[20],str2[20]; FILE *fp; int n,i;

if ( fp=fopen("data1.txt","r") ) {

n=0;

while ( !feof(fp) ) {

fgets(buffer,255,fp);

sscanf(buffer,"%s%s%s%s%s%s%s",str,str,str,str,str1[n],str,str);

n++; if ( n>=N ) break;

}

fclose(fp);

} else printf("Cannot open data1.txt\n");

if ( fp=fopen("data2.txt","r") ) {

while ( !feof(fp) ) {

fgets(buffer,255,fp);

sscanf(buffer,"%s%s%s%s%s%s%s%s%s%s%s%s%s%s", str,str,str,str,str,str,str,str,str,str,str,str2,str,str);

p=str2; while ( *p ) p++; p--; *p=0;

for ( i=0;i<n;i++ ) if ( strcmp(str1[i],str2+1)==0 ) puts(buffer); 

}

fclose(fp);

} else printf("Cannot open data2.txt\n");

return 0;

}

追问
我看不太懂。。。可不可以用awk或者grep做出来呀
追答
你说的不用编程,用grep指令比较?可查此指令用法完成,这里是编程频道
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式