我有两个文件。我需要的是计数每个ID出现在每个文件上的次数,并计算差异以获得成功的百分比。此外,如果第一个文件的第三列包含单词NONE,而第二个文件的同一列包含一个数字,则指示已获得该ID的类别。
档案1:
ID;Coments;Category
2;es un anuncio interesante que le puede servir para alguien;321
3;es un anuncio de un banco que quiere presentarse como una compañía;NONE
4;es un anuncio de un banco que ofrece prestamos para empresas.;70
5;credito pyme bana para hacer crecer tu negocio;50
5;credito pyme bana para hacer crecer tu negocio;52
5;credito pyme bana para hacer crecer tu negocio;70
5;credito pyme bana para hacer crecer tu negocio;71
6;comercial que te hace pensar en considerar a bana para poner tu negocio;50
6;comercial que te hace pensar en considerar a bana para poner tu negocio;71
7;este anuncio da una breve explicación sobre el tratamiento de hemodialisis;50
8;un anucio de bana donde muestra que se puede pedir un crédito para emprender;50
8;un anucio de bana donde muestra que se puede pedir un crédito para emprender;52
8;un anucio de bana donde muestra que se puede pedir un crédito para emprender;70
8;un anucio de bana donde muestra que se puede pedir un crédito para emprender;71
9;bonito;NONE档案2:
ID;Coments;Category
2;es un anuncio interesante que le puede servir para alguien;321
3;es un anuncio de un banco que quiere presentarse como una compañía;57
4;es un anuncio de un banco que ofrece prestamos para empresas.;50
5;credito pyme bana para hacer crecer tu negocio;52
6;comercial que te hace pensar en considerar a bana para poner tu negocio;50
7;este anuncio da una breve explicación sobre el tratamiento de hemodialisis;210
8;un anucio de bana donde muestra que se puede pedir un crédito para emprender;50
9;bonito;303期望产出:
For the ID-2, we have achieved a 100% success rate.
For the ID-3, we have achieved a category.
For the ID-4, we have achieved a 100% success rate.
For the ID-5, we achieved a 25% success rate.
For the ID-5, we achieved a 50% success rate.
For the ID-7, we have achieved a 100% success rate.
For the ID-8, we have achieved a 25% success rate.
For the ID-9, we have achieved a category.一种方法可能是这么小。但当然,我需要计算百分比,并打印它,就像我想要的输出格式。
awk 'BEGIN { FS=OFS=";" } NR==FNR{cnt[$1]++; next} { cnt2[$1]++;} END{ for (ID in cnt){ print ID, "CAT: "cnt[ID],"Manual: "cnt2[ID];}}'发布于 2015-12-03 12:53:14
Awk是为了这个
awk -F ';' '
FNR==1{next}
FNR==NR{C1[$1]++;N1[$1]=($3!~/NONE/);next}
{C2[$1]++;if($3!~/NONE/)N2[$1]++}
END{
for(c in C1){
if((N1[c]==0)&&(C2[c]>0)&&(N2[c]>0)){
S="we have achieved a category."
}
else S=sprintf( "we have achieved a %d%% success rate.", C2[c]*100/C1[c])
printf "For the ID-%d, %s\n", c, S
}
}' file1 file2https://stackoverflow.com/questions/34061598
复制相似问题