Assumindo que seu critério pode ser expresso como o número de linhas que correspondem à expressão regular /PDB; [^;]*; X-ray/
, você pode fazer algo como
awk -vRS= -F'\n' '
{c=0; for(i=1;i<=NF;i++) c += $i ~ /PDB; [^;]*; X-ray/ ? 1 : 0} c >= 5
'
ou (ligeiramente mais limpo, IMHO)
perl -F'\n' -00ne 'print unless (grep { /PDB; [^;]*; X-ray/ } @F) < 5'
Ex.
$ perl -F'\n' -00ne 'print unless (grep { /PDB; [^;]*; X-ray/ } @F) < 5' file
AAPK2_HUMAN Homo sapiens P54646 PDB; 2H6D; X-ray; 1.85 A; A=6-279.
PDB; 2LTU; NMR; -; A=282-339.
PDB; 2YZA; X-ray; 3.02 A; A=6-279.
PDB; 3AQV_TAK.pdb; X-ray; 2.08 A; A=6-279.
PDB; 4CFE; X-ray; 3.02 A; A/C=1-552.
PDB; 4CFF; X-ray; 3.92 A; A/C=1-552.
PDB; 4ZHX_4O7_C1V_C2Z.pdb; X-ray; 2.99 A; A/C=2-552.
PDB; 5EZV_C1V_C2Z_STU.pdb; X-ray; 2.99 A; A/C=2-347, A/C=397-552.
PDB; 5ISO_992_STU.pdb; X-ray; 2.63 A; A/C=1-552.
ABC3B_HUMAN Homo sapiens Q9UH17 PDB; 2NBQ; NMR; -; A=187-382.
PDB; 5CQD_GOL.pdb; X-ray; 2.08 A; A/C=187-378.
PDB; 5CQH; X-ray; 1.73 A; A=187-378.
PDB; 5CQI; X-ray; 1.68 A; A=187-378.
PDB; 5CQK_GOL_PGE.pdb; X-ray; 1.88 A; A=187-378.
PDB; 5TD5; X-ray; 1.72 A; A=187-378.
PDB; 5TKM; X-ray; 1.90 A; A/B=1-191.