Skip to main content

Mostra i caratteri stampabili di un file con le stringhe

Excel 2016 - Tutorial 9: Gestire la stampa in Excel (Giugno 2025)

Excel 2016 - Tutorial 9: Gestire la stampa in Excel (Giugno 2025)
Anonim

Hai mai provato ad aprire un file in un editor solo per scoprire che contiene contenuti binari illeggibili?

Il comando "stringhe" di Linux rende possibile visualizzare i caratteri leggibili da tutti i file.

Lo scopo principale dell'uso del comando "stringhe" è capire quale tipo di file stai guardando ma puoi anche usarlo per estrarre del testo. Ad esempio, se si dispone di un file da un programma proprietario che salva i file in uno strano formato binario, è possibile utilizzare "stringhe" per estrarre il testo inserito nel file.

Esempio di utilizzo del comando Stringhe

Un ottimo modo per dimostrare la potenza del comando stringhe è creare un documento usando LibreOffice Writer.

Basta aprire LibreOffice Writer e inserire del testo e quindi salvarlo nel formato ODT standard.

Ora apri una finestra di terminale (premi CTRL, ALT e T allo stesso tempo) e poi usa il comando cat per visualizzare il file come segue:

cat yourfilename.odt | Di Più

(Sostituisci yourfilename.odt con il nome del file che hai creato)

Quello che vedrete è un intero muro di testo illeggibile.

Premere la barra spaziatrice per scorrere il file. Sporadicamente in tutto il file vedrai parte del testo che hai inserito.

Il comando stringhe può essere utilizzato per visualizzare solo le parti leggibili dall'uomo.

Nella sua forma più semplice puoi eseguire il seguente comando:

stringhe yourfilename.odt | Di Più

Come prima, apparirà un muro di testo, ma solo il testo che puoi leggere come umano. Se sei fortunato, potrai vedere il tuo testo.

Quello che sarai in grado di vedere è la chiave, tuttavia, è sulla prima riga:

mimetypeapplication / vnd.oasis.opendocument.text

Sappiamo che il tipo di file è un file ODT di LibreOffice Writer per 2 motivi:

  1. Abbiamo creato il file
  2. L'estensione è .ODT

Immagina di non aver creato il file o di aver trovato il file su un disco recuperato e che il file non avesse un'estensione.

Il ripristino di Windows recuperava spesso file con nomi come 0001, 0002, 0003 ecc. Il fatto che i file siano stati ripristinati è ottimo, ma cerca di capire quali sono stati i tipi di questi file era un incubo.

Usando le stringhe hai una possibilità di combattere il tipo di file. Sapendo che un file è un file opendocument.text significa che è possibile salvarlo con l'estensione ODT e aprirlo in LibreOffice writer.

Nel caso tu fossi inconsapevole, un file ODT è fondamentalmente un file compresso. Se si rinomina il nomefile.odt in nomefile.zip, è possibile aprirlo in uno strumento di archiviazione e persino decomprimere il file.

Comportamenti alternativi

Per impostazione predefinita, il comando stringhe restituisce tutte le stringhe all'interno di un file, ma è possibile cambiare il comportamento in modo che restituisca stringhe da sezioni di dati caricate e inizializzate in un file.

Cosa significa esattamente? Nessuno sembra saperlo.

È logico presupporre che si stiano utilizzando stringhe per provare a individuare il tipo di file o cercare il testo specifico in un file.

Se quando esegui il comando stringhe usando il comportamento predefinito non ottieni l'output sperato, prova a eseguire uno dei seguenti comandi per vedere se fa la differenza:

stringhe -d nomefilestringhe --data yourfilename

La pagina di manuale indica che il comando precedente può aiutare a ridurre la quantità di garbage restituita dalle stringhe.

Il comando "stringhe" può essere impostato in modo da funzionare all'indietro in modo che il parametro meno d sia il comportamento predefinito. Se questo è il caso sul tuo sistema, puoi restituire tutti i dati usando il seguente comando:

stringhe -a nomefile

Formattazione dell'output

È possibile ottenere il testo all'interno dell'output per visualizzare il nome del file accanto a ciascuna riga di testo.

Per fare questo, esegui uno dei seguenti comandi:

stringhe -f nomefilestringhe --print-file-name yourfilename

L'output sarà ora simile a questo:

nomefile: una porzione di testonomefile: un'altra porzione di testo

Come parte dell'output puoi anche visualizzare l'offset di dove quel testo appare in un file. Per farlo, esegui il seguente comando:

stringhe -o il tuo nomefile

L'output sarà simile a questo:

16573 tuo

17024 testo

L'offset è in realtà l'offset ottale, anche se a seconda di come sono state compilate le stringhe per il tuo sistema, potrebbe essere anche l'esadecimale o l'offset decimale.

Un modo più accurato per ottenere l'offset desiderato è utilizzare i seguenti comandi:

stringhe -t d nomefilestringhe -t o il tuo nomefilestringhe -t h nomefile

Il meno t significa restituire l'offset e il carattere che segue determina il tipo di offset. (cioè d = decimale, o = ottale, h = esadecimale).

Per impostazione predefinita, il comando stringhe stampa ogni nuova stringa su una nuova riga, ma è possibile impostare il delimitatore di propria scelta. Ad esempio, per utilizzare un simbolo pipe ("|") come delimitatore, eseguire il seguente comando:

stringhe -s "|" yourfilename

Regola il limite della stringa

Il comando stringhe di default cerca una stringa di 4 caratteri stampabili in una riga. È possibile regolare l'impostazione predefinita in modo che restituisca solo una stringa con 8 caratteri stampabili o 12 caratteri stampabili.

Regolando questo limite puoi personalizzare l'output per ottenere il miglior risultato possibile. Cercando una stringa troppo lunga si rischia di omettere il testo utile, ma rendendolo troppo breve si potrebbe finire con molto più junk restituito.

Per regolare il limite della stringa, eseguire il seguente comando:

stringhe -n 8 nomefile

Nell'esempio sopra ho modificato il limite a 8.Puoi sostituire 8 con il numero di tua scelta.

Puoi anche usare il seguente comando per fare la stessa cosa:

stringhe --bytes = 8 yourfilename

Includi spazio bianco

Per impostazione predefinita, il comando stringhe include uno spazio bianco come una tabulazione o uno spazio come carattere stampabile. Pertanto, se si dispone di una stringa che legge "il gatto seduto sul tappeto", il comando delle stringhe restituirà l'intero testo.

Per impostazione predefinita, i nuovi caratteri di riga e i ritorni a capo non sono considerati caratteri stampabili.

Per ottenere stringhe per riconoscere nuovi caratteri di riga e ritorni a capo come caratteri stampabili, eseguire le stringhe nel modo seguente:

stringhe -w nomefile

Cambia la codifica

Ci sono 5 opzioni di codifica disponibili per l'uso con le stringhe:

  • s = 7 bit byte (usato per ASCII, ISO 8859)
  • S = byte da 8 bit
  • b = 16 bit bigendian
  • l = 16 bit littleendian

Il valore predefinito è 7 bit byte.

Per cambiare la codifica eseguire il seguente comando:

stringhe -e s il tuo nomefilestringhe --encoding = s nomefile

Nel comando precedente, ho specificato il valore predefinito "s" che significa 7 bit byte. Sostituisci semplicemente la "s" con la lettera di codifica a tua scelta.

Cambia il nome della descrizione del file binario

È possibile modificare il comportamento delle stringhe in modo che utilizzi una libreria di descrittori di file binari diversa da quella fornita per il proprio sistema.

Questo interruttore è uno per gli esperti. Se si dispone di un'altra libreria da utilizzare, è possibile farlo eseguendo il seguente comando di stringhe:

stringhe -T bfdname

Opzioni di lettura da un file

Se si utilizzano le stesse opzioni ogni volta, non si desidera dover specificare tutte le opzioni ogni volta che si esegue il comando perché richiede tempo.

Quello che puoi fare è creare un file di testo usando nano e specificare le opzioni all'interno di quel file.

Per provare questo in un terminale, eseguire il seguente comando:

nano stringsopts

Nel file inserisci il seguente testo:

-f -o -n 3 -s "|"

Salvare il file premendo CTRL e O e uscire premendo CTRL e X.

Per eseguire i comandi di stringhe con queste opzioni, eseguire il seguente comando:

stringhe @stringsopts yourfilename

Le opzioni verranno lette dal file stringsopts e dovresti vedere il nome del file prima di ogni stringa, l'offset e "|" come separatore.

Ottenere aiuto

Se vuoi saperne di più sulle stringhe, puoi eseguire il seguente comando per ottenere aiuto.

stringhe --help

In alternativa puoi anche leggere la pagina di manuale:

corde di uomo

Scopri quale versione di stringhe stai utilizzando

Per trovare la versione di stringhe in esecuzione, esegui uno dei seguenti comandi:

stringhe -vstringhe -Vstringhe --versione