Kako prikazati znake za tiskanje datoteke z ukazom Strings

Ali ste kdaj poskusili odpreti datoteko v urejevalniku samo, če želite ugotoviti, da vsebuje neberljivo binarno vsebino?

Z ukazom "Nizi" v sistemu Linux si lahko ogledate človeško berljive znake v kateri koli datoteki.

Glavni namen uporabe ukaza "strings" je določiti vrsto datoteke, ki jo iščete, vendar jo lahko uporabite tudi za ekstrahiranje besedila. Na primer, če imate datoteko iz lastniškega programa, ki prihrani datoteke v čudnem binarnem formatu, lahko uporabite »nizove«, da izvlečete besedilo, ki ste ga vstavili v datoteko.

Primer uporabe ukaza Strings

Odličen način za prikaz moči ukaza strun je ustvarjanje dokumenta s programom LibreOffice Writer.

Preprosto odprite LibreOffice Writer in vnesite nekaj besedila in jo shranite v standardni format ODT .

Zdaj odprite terminalsko okno (istočasno pritisnite CTRL, ALT in T) in nato uporabite ukaz cat za prikaz datoteke na naslednji način:

mačka yourfilename.odt | več

(Zamenjajte ime yourfilename.odt z imenom datoteke, ki ste jo ustvarili)

Kar boste videli je cela stena nečitnega besedila.

Pritisnite preslednico, da se pomaknete po datoteki. Sporadično po celotni datoteki boste videli nekaj besedila, ki ste ga vnesli.

Z ukazom strings lahko prikažete samo dele, ki so človeški berljivi.

V najpreprostejši obliki lahko zaženete naslednji ukaz:

strings yourfilename.odt | več

Kot prej bo prikazana stena besedila, vendar le besedilo, ki ga lahko berete kot človeka. Če imate srečo, boste lahko videli svoje besedilo.

Kaj boste lahko videli, da je ključna, pa je v prvi vrstici:

mimetypeapplikacija / vnd.oasis.opendocument.text

Vemo, da je vrsta datoteke datoteka ODB za LibreOffice Writer iz dveh razlogov:

  1. Datoteko smo ustvarili
  2. Razširitev je .ODT

Predstavljajte si, da niste ustvarili datoteke ali ste našli datoteko na obnovljenem disku in datoteka nima razširitve.

Obnovitev operacijskega sistema Windows bi pogosto obnovila datoteke z imeni, kot so 0001, 0002, 0003 itd. Dejstvo, da so bile datoteke obnovljene, je super, vendar je poskušalo ugotoviti, katere vrste teh datotek so bile nočna mora.

Z uporabo nizov imate možnost spopadanja z vrsto datoteke. Vedeti, da je datoteka datoteka opendocument.text pomeni, da jo lahko shranite z razširitvijo ODT in jo odprete v knjižnici LibreOffice.

V primeru, da niste vedeli, da je datoteka ODT v bistvu stisnjena datoteka. Če preimenujete yourfilename.odt na yourfilename.zip, ga lahko odprete v orodju za arhiviranje in celo raztegnete datoteko.

Alternativna vedenja

Po privzetku ukaz strings vrne vse nize znotraj datoteke, vendar lahko spremenite vedenje tako, da vrne niz iz inicializiranih in naloženih podatkovnih datotek v datoteko.

Kaj to točno pomeni? Zdi se, da nihče ne ve.

Smiselno je domnevati, da uporabljate nizov, da bi poskusili ugotoviti vrsto datoteke ali iskati določeno besedilo v datoteki.

Če pri izvajanju ukaza strings z uporabo privzetega vedenja ne dobite izhoda, za katerega ste upali, nato poskusite zagnati enega od naslednjih ukazov, da ugotovite, ali to naredi razliko:

strune -d yourfilename

strune --data yourfilename

Priročnik kaže, da zgornji ukaz lahko pomaga zmanjšati količino smeti, vrnjenega iz nizov.

Ukaz "strings" lahko nastavite tako, da deluje obratno, tako da je minus d stikalo privzeto vedenje. Če je to v primeru vašega sistema, lahko vse podatke vrnete z uporabo naslednjega ukaza:

strune -a yourfilename

Oblikovanje izhoda

Besedilo lahko dobite v izhodu, da prikaže ime datoteke poleg vsake vrstice besedila.

Če želite to narediti, zaženite enega od naslednjih ukazov:

strune -f yourfilename

nizi --print-file-name yourfilename

Rezultat bo zdaj videti nekaj takega:

yourfilename: kos besedila

yourfilename: drug kos besedila

Kot del izhoda lahko prikažete tudi odmik od tega, kje se to besedilo prikaže v datoteki. To naredite tako:

strune - na vašo datoteko

Rezultat bo videti nekaj takega:

16573 vaš

17024 besedilo

Izravnava je pravzaprav osemtni offset, čeprav je odvisno od tega, kako je bil zbrisan niz za vaš sistem, je lahko enostavno hex ali decimalni offset.

Natančnejši način pridobivanja želenega pomika je uporaba naslednjih ukazov:

strings -td yourfilename

strune -to yourfilename

strune -to yourfilename

Minus t pomeni vrnitev odmika in znak, ki sledi, določa vrsto izravnave. (tj. d = decimalna, o = oktalna, h = heksa).

Privzeto ukaz ukazov nizov natisne vsak nov niz v novi vrstici, vendar lahko nastavite ločilo po vaši izbiri. Na primer, uporabite simbol cevi ("|"), saj ločilnik zaženete naslednji ukaz:

strune -s "|" vašega filma

Prilagodi omejitev niza

Ukaz z nizi privzeto išče niz znakov za tiskanje v vrsti. Privzeto lahko prilagodite tako, da vrne samo vrsto z 8 znaki, ki jih je mogoče natisniti, ali 12 znakov, ki jih je mogoče natisniti.

S prilagoditvijo te omejitve lahko prilagodite izhod, da dosežete najboljši možni rezultat. Če iščete niz, ki je predolgo, lahko tvegate, da izpuščate uporabno besedilo, vendar s prekratko, boste morda na koncu dobili veliko več junk vrnil.

Če želite prilagoditi omejitev nizov, zaženite naslednji ukaz:

strings -n 8 yourfilename

V zgornjem primeru sem spremenil omejitev na 8.

8 lahko zamenjate s številom po vaši izbiri.

Če želite narediti isto stvar, lahko uporabite tudi naslednji ukaz:

strune --bytes = 8 yourfilename

Vključi presledek

Privzeto ukaz ukazov vsebuje vrstice, kot je na primer zavihka ali prostor, kot tiskalni znak. Zato, če imate niz, ki se glasi kot "mačka sedela na mat", bi ukaz ukazov vrnil celotno besedilo.

Novi črkovni znaki in povratni podatki za prevoz se privzeto ne štejejo za tiskalne znake.

Če želite nizom prepoznati nove znake črte in vrnitev v vozičku kot znake za tiskanje znakov, sledite naslednjim navodilom:

strune -w yourfilename

Spremeni kodiranje

Na voljo je 5 možnosti za kodiranje z nizi:

Privzeta vrednost je 7-bitni bajt.

Če želite spremeniti kodiranje, zaženite naslednji ukaz:

strune - vaše ime datoteke

strune --encoding = s yourfilename

V zgornjem ukazu sem določil privzeto "s", kar pomeni 7-bitni bajt. Preprosto zamenjajte "s" s črko kodiranja po vaši izbiri.

Spremenite ime opisa binarnih datotek

Spremenite lahko obnašanje nizov, tako da uporablja drugo knjižnico deskriptorjev binarnih datotek, ki ni navedena v vašem sistemu.

To stikalo je eno za strokovnjake. Če imate drugo knjižnico, ki jo lahko uporabite, lahko to storite z zagonom naslednjega ukaza nizov:

strune -T bfdname

Možnosti branja iz datoteke

Če boste vedno uporabljali enake možnosti, potem ne želite, da bi morali vsakič, ko zaženete ukaz, določiti vsa stikala, ker je potreben čas.

Kaj lahko storite, je ustvariti besedilno datoteko z uporabo nano in podati možnosti v tej datoteki.

Če želite to preizkusiti v terminalu, sledite naslednjim ukazom:

nano stringsopts

V datoteko vnesite naslednje besedilo:

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

Datoteko shranite tako, da pritisnete CTRL in O ter izstopite s pritiskom na CTRL in X.

Če želite zagnati ukaze nizov s temi možnostmi, zaženite naslednji ukaz:

strune @stringsopts yourfilename

Možnosti berejo iz datoteke stringsopts in pred vsakim nizom, odmikom in »|« si morate ogledati ime datoteke. kot separator.

Pridobivanje pomoči

Če želite prebrati več o nizih, lahko za pomoč dobite naslednji ukaz.

strune - pomoč

Lahko pa preberete tudi priročnik:

človeški nizi

Preverite, katera različica nizov, ki jih vodite

Če želite najti različico nizov, ki jih zaženete, zaženite enega od naslednjih ukazov:

strune -v

strune -V

strune - verzija