strings (Unix)

strings è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1] e GNU[2], che legge i dati di uno o più file, o i dati provenienti dallo standard input, ricercando in essi delle sequenze di byte rappresentanti valide stringhe di caratteri visibili, e le visualizza sullo standard output, una linea per ciascuna stringa trovata, opzionalmente indicando anche l'offset a cui la stringa è stata trovata.

Il funzionamento si basa sul fatto che solo alcune delle sequenze di byte presenti in un flusso di dati possono rappresentare anche delle valide stringhe di caratteri secondo la codifica di caratteri in uso.

Il comportamento predefinito prevede di ricercare stringhe composte da almeno 4 caratteri, e di considerare solo le porzioni dei dati ritenute rilevanti (ad esempio, nel caso di file eseguibili nel formato nativo del sistema, sono normalmente prese in considerazione solo le sezioni contenenti i dati del programma, e non quelli contenenti ad esempio le istruzioni).

La sintassi generale del comando strings è la seguente:

strings [opzioni] [--] [file1 …] 

I parametri facoltativi file specificano i nomi dei file da cui leggere i dati. Se non sono specificati, o se è un trattino (-), strings legge i dati provenienti dallo standard input.

Il doppio trattino -- (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.

Tra le opzioni principali vi sono:

-a
Effettua la ricerca considerando tutti i dati, anziché le sole sezioni considerate rilevanti.
-n num
Indica la lunghezza minima delle stringhe da ricercare (il valore predefinito è 4).
-t formato
Indica di mostrare anche l'offset a partire dall'inizio dei dati a cui la stringa è stata trovata. Il parametro formato è una lettera che specifica la base numerica con cui visualizzare l'offset, e può essere

Mostra le stringhe nelle sole sezioni considerate rilevanti del file /bin/ls:

strings /bin/ls 

Mostra le stringhe di almeno 6 caratteri del file /tmp/dati.dat, indicando anche l'offset in forma esadecimale:

 strings -a -n 6 -t x /tmp/dati.dat 
  1. ^ (EN) strings, in The Open Group Base Specifications Issue 7 IEEE Std 1003.1-2008. URL consultato il 17-04-2009.
  2. ^ (EN) strings, in GNU Binary Utilities. URL consultato il 17-04-2009.
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica