Mutasson egy fájl nyomtatható karaktereket karakterláncokkal

Megpróbált már megnyitni egy fájlt egy szerkesztőben, hogy megtudja, olvashatatlan bináris tartalmat tartalmaz? 

A Linux "string" parancs lehetővé teszi az ember által olvasható karakterek megtekintését bármely fájlban. 

A "string" parancs használatának fő célja annak meghatározása, hogy milyen típusú fájlt néz, de felhasználhatja a szöveg kibontására is. Például, ha van egy saját programból származó fájl, amely furcsa bináris formátumban menti a fájlokat, akkor "húrok" segítségével kibonthatja a fájlba helyezett szöveget.


Példa a Strings parancs használatára

A stringek parancs erejének bemutatásának nagyszerű módja egy dokumentum létrehozása a LibreOffice Writer segítségével.

Egyszerűen nyissa meg a LibreOffice Writert, írjon be egy szöveget, majd mentse el a szabványos ODT formátumba.

Most nyissa meg a terminálablakot (nyomja meg a CTRL, ALT és T ugyanakkor), majd a cat paranccsal jelenítse meg a fájlt az alábbiak szerint:

cat yourfi

(Cserélje le a yourfilename.odt fájlt a létrehozott fájl nevére.)

Amit látni fog, az egy egész fal olvashatatlan szöveg.

A fájl végiggörgetéséhez nyomja meg a szóközt. Az egész fájlban szórványosan láthatja a beírt szöveg egy részét.

A karakterlánc paranccsal csak az ember által olvasható részek jeleníthetők meg.

A legegyszerűbb formájában a következő parancsot futtathatja:

húrok tefi

A korábbiakhoz hasonlóan egy szövegfal jelenik meg, de csak olyan szöveg, amelyet emberként olvashat. Ha szerencséd van, akkor láthatja a szövegét.

Amit azonban kulcsfontosságúnak fog látni, az az első sorban található:

mimetipepplication / vnd.oasis.

Két okból tudjuk, hogy a fájltípus LibreOffice Writer ODT fájl:

  1. Mi hoztuk létre a fájlt
  2. A kiterjesztés .ODT

Képzelje el, hogy nem Ön hozta létre a fájlt, vagy egy helyreállított lemezen találta meg a fájlt, és a fájlnak nem volt kiterjesztése.

A Windows helyreállítása gyakran helyreállította a fájlokat olyan nevekkel, mint 0001, 0002, 0003 stb. Az a tény, hogy a fájlokat helyreállították, nagyszerű, de rémálom volt az, hogy megpróbálják kideríteni, hogy milyen típusú fájlok voltak ezek.

A húrok használatával harci esélye van a fájltípus kidolgozására. Annak tudatában, hogy a fájl opendocument.text fájl, azt elmentheti az ODT kiterjesztéssel, és megnyithatja a LibreOffice íróban.

Abban az esetben, ha nem tudott róla, az ODT fájl alapvetően egy tömörített fájl. Ha átnevezi a yourfilename.odt fájlt yourfilename.zip fájljára, megnyithatja azt egy archiváló eszközben, és kibontsa a fájlt is.


Alternatív viselkedésmódok

Alapértelmezés szerint a string karakterlánc a fájl összes karakterláncát adja vissza, de a viselkedést úgy módosíthatja, hogy a karakterláncokat a fájl inicializált, betöltött adat szakaszaiból adja vissza.

Mit jelent ez pontosan? Úgy tűnik, senki sem tudja. 

Ésszerű feltételezni, hogy karakterláncokat használ, hogy megtudja a fájltípust, vagy konkrét szöveget keres a fájlban.

Ha a karakterláncok parancsának alapértelmezett használatával történő futtatásakor nem kapja meg a remélt kimenetet, akkor próbálja meg futtatni az alábbi parancsok egyikét, hogy lássa, van-e különbség:

húr

or

karakterláncok - a fájlneved adata

A kézikönyv oldal kijelenti, hogy a fenti parancs segíthet csökkenteni a húrokból visszajuttatott szemét mennyiségét. 

A "string" parancs beállítható úgy, hogy fordítva működjön, így a mínusz d kapcsoló lesz az alapértelmezett viselkedés. Ha a rendszerén ez a helyzet, akkor a következő paranccsal visszaadhatja az összes adatot:

húr


Kimenet formázása

Megkaphatja a kimeneten belüli szöveget, hogy a fájl neve megjelenjen az egyes szövegsorok mellett.

Ehhez futtassa az alábbi parancsok egyikét:

húr

or

húrok --print-fájlnév a fájlneved

A kimenet most így néz ki:

a te fájlneved: egy darab szöveg

or

a te fájlnév: egy másik szövegdarab

A kimenet részeként megjelenítheti azt az eltolást is, ahol a szöveg a fájlban megjelenik. Ehhez futtassa a következő parancsot:

húr

A kimenet így néz ki:

Az eltolás valójában oktális eltolás, bár attól függően, hogy a rendszeredhez hogyan állítottuk össze a karakterláncokat, könnyen lehet a hexa vagy a tizedes eltolás is.

A kívánt eltolás megszerzésének pontosabb módja a következő parancsok használata:

karakterláncok -td a fájlneved
karakterláncok - a fájlnevedhez
húrok - a te fájlneved

A mínusz t azt jelenti, hogy visszaadja az eltolást, és az utána következő karakter határozza meg az eltolás típusát. (azaz d = tizedes, o = oktális, h = hexa).

Alapértelmezés szerint a strings parancs minden új karakterláncot új sorra nyomtat, de beállíthatja a választott elválasztót. Például egy pip szimbólum ("|") használatához határolóként futtassa a következő parancsot:

húrok -s "| &


Állítsa be a húrkorlátot

A Strings parancs alapértelmezés szerint egy sorban 4 nyomtatható karakterből álló karakterláncot keres. Az alapértelmezett értéket úgy állíthatja be, hogy az csak 8 vagy 12 nyomtatható karakterből álló karakterláncot adjon vissza.

Ennek a korlátnak a beállításával testre szabhatja a kimenetet a lehető legjobb eredmény elérése érdekében. Ha túl hosszú karakterláncot keres, megkockáztatja a hasznos szöveg kihagyását, de ha túl rövid lesz, akkor sokkal több szemetet adhat vissza.

A karaktersorozat beállításához futtassa a következő parancsot:

húrok

A fenti példában megváltoztattam a határt 8-ra. A 8-ast helyettesítheti a választott számmal.

A következő paranccsal használhatja ugyanezt:

karakterláncok - bájt & #


Tartalmazza a Whitespace-t

Alapértelmezés szerint a string karakterparancs nyomtatható karakterként szóközt, például tabulátort vagy szóközt tartalmaz. Ezért, ha van egy karakterláncod, amely a következőt írja: "a macska ült a szőnyegen", akkor a string parancs a teljes szöveget visszaadja.

Az új sorok és a kocsivissza alapértelmezés szerint nem számít nyomtatható karakternek.

Ahhoz, hogy a karakterláncok felismerjék az új sor karaktereket és a kocsi visszatéréseket nyomtatható karakterként, a következő módon futtassa a karakterláncokat:

húr

Módosítsa a kódolást

A karakterláncokkal 5 kódolási lehetőség áll rendelkezésre:

  • s = 7 bites bájt (ASCII, ISO 8859 esetén használható)
  • S = 8 bites bájt 
  • b = 16 bites bigendian
  • l = 16 bites kisendény

Az alapértelmezett egy 7 bites bájt.

A kódolás módosításához futtassa a következő parancsot:

húrok -es a fájlneved
karakterláncok - kódolás = s a fájlneved

A fenti parancsban megadtam az alapértelmezett "s" -t, ami 7 bites bájtot jelent. Egyszerűen cserélje ki az "s" -t az Ön által választott kódoló betűvel.

Módosítsa a bináris fájlleírás nevét

Megváltoztathatja a karakterláncok viselkedését úgy, hogy az a rendszer számára megadottaktól eltérő bináris fájlleíró könyvtárat használjon.

Ez a kapcsoló a szakértők számára készült. Ha másik könyvtárat kell használnia, akkor a következő string parancs futtatásával teheti meg:

st

Opciók olvasása fájlból

Ha ugyanazokat az opciókat fogja használni minden alkalommal, akkor nem akarja, hogy a parancs futtatásakor minden kapcsolót meg kell adnia, mert időbe telik.

Megteheti, hogy létrehoz egy szöveges fájlt a nano használatával, és meghatározza a fájl beállításait.

A terminálon belüli kipróbálásához futtassa a következő parancsot:

A fájlba írja be a következő szöveget:

-f -o -n

Mentse a fájlt a CTRL és O megnyomásával, majd a CTRL és X megnyomásával lépjen ki.

A string parancsok futtatásához ezekkel az opciókkal futtassa a következő parancsot:

húrok @ húrok

Az opciók a stringsopts fájlból lesznek olvashatók, és minden karakterlánc előtt látnia kell a fájlnevet, az eltolást és a "|" elválasztóként.

Segítséget kap

Ha többet szeretne megtudni a karakterláncokról, futtassa a következő parancsot a segítségért.

Alternatív megoldásként elolvashatja a kézi oldalt is:

Tudja meg, hogy a karakterláncok melyik verzióját futja

A futtatott karakterláncok verziójának megkereséséhez futtassa az alábbi parancsok egyikét:

húrok -v
húrok -V
húrok - verzió