BEGIN{FS=OFS="\t"; }{ if (le>0){ if (($1==li)&&($2==le)){ #merge if (mm==0){ms=ls;mm=1;#printf("A:%s;%s:A",ldet,$4); mdet=sprintf("%s|%s",ldet,$4); } else{#printf("B:%s;%s:B",mdet,$4); mdet=sprintf("%s|%s",mdet,$4); } me=$3; } else { if (mm==1){ print li,ms,me,mdet,"",lst; } else{ print ll; } mm=0; } } le=$3;li=$1;ldet=$4;ls=$2;ll=$0;lst=$6; }END{ if (mm==1){ print li,ms,me,mdet; } else{ print ll; } }