file
è ancora il comando che desideri. Qualsiasi file che è testo (secondo la sua euristica) includerà la parola "testo" nell'output di file
; tutto ciò che è binario non includerà la parola "testo".
Se non sei d'accordo con l'euristica che file
utilizza per determinare testo vs. non-testo, allora la domanda deve essere specificata meglio, poiché testo vs. non-testo è una domanda intrinsecamente vaga. Ad esempio, file
non identifica un blocco di chiave pubblica PGP in ASCII come "testo", ma potresti (poiché è composto solo da caratteri stampabili, anche se non è leggibile dall'uomo).
Il manuale diff lo specifica
diff determina se un file è di testo o binario controllando i primi pochi byte nel file; il numero esatto di byte dipende dal sistema, ma in genere è di diverse migliaia. Se ogni byte in quella parte del file non è nullo, diff considera il file come testo; altrimenti considera il file binario.