Ako zobraziť súbor s tlačiteľné znaky s reťazcom príkaz

Skúsili ste niekedy otvoriť súbor v editore len preto, aby zistil, že obsahuje nečitateľný binárny obsah?

Príkaz liniek "strings" umožňuje zobraziť v každom súbore znaky čitateľné pre človeka.

Hlavným účelom príkazu "reťazce" je zistiť, aký typ súboru hľadáte, ale môžete ho použiť aj na extrahovanie textu. Napríklad, ak máte súbor z vlastného programu, ktorý šetrí súbory v podivnom binárnom formáte, môžete použiť "reťazce" na extrahovanie textu vloženého do súboru.

Príklad Použitie príkazov reťazca

Skvelý spôsob, ako demonštrovať silu príkazov reťazcov, je vytvoriť dokument pomocou aplikácie LibreOffice Writer.

Jednoducho otvorte program LibreOffice Writer a zadajte nejaký text a uložte ho do štandardného formátu ODT .

Teraz otvorte okno terminálu (súčasne stlačte klávesy CTRL, ALT a T) a potom použite príkaz cat na zobrazenie súboru nasledovne:

cat yourfilename.odt | viac

(Nahraďte svojfilename.odt názvom súboru, ktorý ste vytvorili)

Čo uvidíte je celá stena nečitateľného textu.

Stlačte medzerník na prechádzanie súboru. Sporadicky v celom súbore uvidíte niektorý text, ktorý ste zadali.

Príkaz strings môže byť použitý na zobrazenie iba častí, ktoré sú čitateľné pre človeka.

Vo svojej najjednoduchšej forme môžete spustiť nasledujúci príkaz:

reťazca váš viac

Rovnako ako predtým sa zobrazí text steny, ale iba text, ktorý si môžete prečítať ako človeka. Ak máte šťastie, potom budete môcť vidieť váš text.

To, čo je kľúčové, je však na prvom riadku:

mimetypeapplication / vnd.oasis.opendocument.text

Vieme, že typ súboru je súbor ODT LibreOffice Writer zo 2 dôvodov:

  1. Tento súbor sme vytvorili
  2. Rozšírenie je .ODT

Predstavte si, že ste nevytvorili súbor alebo ste našli súbor na obnovenom disku a súbor nemal rozšírenie.

Obnova systému Windows by často obnovovala súbory s názvami ako 0001, 0002, 0003 atď. Skutočnosť, že súbory boli obnovené, je skvelé, ale snaží sa zistiť, aké typy týchto súborov boli nočnou moru.

Pomocou reťazcov máte možnosť bojovať s vyriešením typu súboru. Vedieť, že súbor je súbor opendocument.text znamená, že ho môžete uložiť s rozšírením ODT a otvoriť ho v zapisovači LibreOffice.

V prípade, že ste neboli vedomí, ODT súbor je v podstate komprimovaný súbor. Ak premenujete názov súboru.odt na svoj súbor.zip môžete ho otvoriť v archivačnom nástroji a dokonca aj rozbaliť súbor.

Alternatívne správanie

V predvolenom nastavení príkaz reťazcov vráti všetky reťazce v rámci súboru, ale môžete zmeniť správanie tak, aby vrátilo reťazce z inicializovaných, načítaných dátových sekcií v súbore.

Čo to presne znamená? Zdá sa, že to nikto nevie.

Je rozumné predpokladať, že používate reťazce, aby ste sa pokúsili nájsť typ súboru alebo vyhľadať konkrétny text v súbore.

Ak pri spustení príkazov reťazcov pomocou predvoleného správania nedostanete výstup, o ktorý ste dúfali, potom skúste spustiť jeden z nasledujúcich príkazov, aby ste zistili, či je to rozdiel:

reťazcov -d vášhofile

reťazce - zadajte meno súboru

Manuálna stránka uvádza, že uvedený príkaz môže pomôcť znížiť množstvo odpadu vráteného z reťazcov.

Príkaz "reťazce" môže byť nastavený tak, aby pracoval opačne, takže prepínač mínus d je predvolené správanie. Ak je to vo vašom systéme, môžete vrátiť všetky údaje pomocou nasledujúceho príkazu:

reťazcov - vaše meno súboru

Formátovanie výstupu

Môžete získať text v rámci výstupu, aby sa zobrazil názov súboru vedľa každého riadku textu.

Ak to chcete urobiť, spustite jeden z nasledujúcich príkazov:

reťazcov -f vášho súboru

reťazce - názov súboru -príbor-súbor

Výstup bude teraz vyzerať takto:

yourfilename: text

yourfilename: ďalší text

Ako súčasť výstupu môžete tiež zobraziť posun miesta, kde sa text nachádza v súbore. Postupujte takto:

reťazcov - vaše meno súboru

Výstup bude vyzerať takto:

16573 váš

17024 text

Posun je v skutočnosti osmičkový posun, aj keď v závislosti od spôsobu zostavovania reťazcov pre váš systém by mohol byť jednoducho hexadecimálny alebo desatinný posun.

Presnejším spôsobom získania požadovaného posunu je použiť nasledujúce príkazy:

reťazca -td vaše menofile

reťazcov - do vášho súboru

reťazcov - vaše meno súboru

Mínus t znamená vrátiť posun a nasledujúci znak určuje typ ofsetu. (tj d = desatinné, o = osičné, h = hex).

V predvolenom nastavení príkaz strings vytlačí každý nový reťazec na novom riadku, ale môžete nastaviť oddeľovač podľa vlastného výberu. Ak napríklad použijete symbol odbočenia ("|") ako oddeľovač, spustite nasledujúci príkaz:

reťazca -s "|" " NázovSúboru

Upravte limit reťazca

Príkaz reťazcov predvolene hľadá reťazec po 4 tlačených znakoch za sebou. Predvolené nastavenie môžete upraviť tak, že vráti iba reťazec s 8 tlačiteľnými znakmi alebo 12 tlačiteľnými znakmi.

Nastavením tohto limitu môžete prispôsobiť výstup tak, aby ste získali čo najlepší výsledok. Hľadaním reťazca, ktorý je príliš dlhý, riskujete vynechanie užitočného textu, ale tým, že je príliš krátky, môžete skončiť s oveľa väčším vrátením nevyžiadanej pošty.

Ak chcete nastaviť limit reťazca, spustite nasledujúci príkaz:

reťazcov -n 8 vaše menofile

Vo vyššie uvedenom príklade som limit zmenil na 8.

8 môžete nahradiť číslom podľa vášho výberu.

Môžete tiež použiť nasledujúci príkaz, aby ste urobili to isté:

reťazca - bytes = 8 vaše menofile

Zahrňte medzery

V predvolenom nastavení príkaz reťazca obsahuje znaky ako napríklad tabuľku alebo medzeru ako tlačiteľný znak. Preto ak máte reťazec, ktorý číta ako "mačka sedela na podložke", potom príkaz reťazcov vráti celý text.

Nové znaky riadkov a znaky vrátenia sa v predvolenom nastavení nepovažujú za znaky, ktoré je možné vytlačiť.

Ak chcete, aby reťazce rozpoznali nové riadkové znaky a vozík sa vracia ako tlačiteľný znak, spustite reťazce nasledujúcim spôsobom:

reťazca -w yourfilename

Zmena kódovania

Na použitie s reťazcami je k dispozícii 5 možností kódovania:

Predvolená hodnota je 7 bitový bajt.

Ak chcete zmeniť kódovanie, spustite nasledujúci príkaz:

reťazce - vaše meno súboru

reťazce - enkoding = s vaše menofile

Vo vyššie uvedenom príkaze som určil predvolené "s", čo znamená 7 bitový byte. Jednoducho nahraďte písmeno "s" písmenom podľa vášho výberu.

Zmena názvu binárneho súboru

Môžete zmeniť správanie reťazcov tak, aby používal inú knižnicu deskriptorov binárnych súborov, než je tá, ktorá je pre váš systém k dispozícii.

Tento prepínač je určený pre odborníkov. Ak máte k dispozícii inú knižnicu, môžete tak urobiť spustením nasledujúceho reťazca:

reťazcov -T bfdname

Možnosti čítania zo súboru

Ak budete používať vždy rovnaké možnosti, potom nechcete, aby ste museli zadávať všetky prepínače pri každom spustení príkazu, pretože to trvá dlhšie.

Čo môžete urobiť, je vytvoriť textový súbor pomocou nano a určiť možnosti v tomto súbore.

Ak to chcete vyskúšať v rámci terminálu, spustite nasledujúci príkaz:

nano stringsopts

Do súboru zadajte nasledujúci text:

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

Uložte súbor stlačením klávesov CTRL a O a opusťte stlačením kombinácie klávesov CTRL a X.

Ak chcete spustiť príkazy reťazcov s týmito možnosťami, spustite nasledujúci príkaz:

strings @ struny opisuje vaše meno

Možnosti budú čítané zo súboru stringsopts a pred každým reťazcom by ste mali vidieť názov súboru, offset a "|" ako oddeľovač.

Získanie pomoci

Ak sa chcete dozvedieť viac o reťazcoch, môžete získať pomoc pomocou nasledujúceho príkazu.

reťazce --help

Prípadne si môžete tiež prečítať manuálnu stránku:

mužských reťazcov

Zistite, akú verziu reťazcov používate

Ak chcete nájsť verziu reťazcov, ktoré používate, spustite jeden z nasledujúcich príkazov:

reťazca -v

reťazcov -V

reťazce - verzia