Hogyan lehet megjeleníteni a fájl nyomtatható karaktereit a karakterláncok paranccsal

Próbáltál-e már csak egy szerkesztőben megnyitni egy fájlt, hogy kiderítse, hogy tartalmaz unreadable bináris tartalmat?

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

A "húrok" parancs fő célja annak meghatározása, hogy milyen típusú fájlt keres, de a szöveg kivonatolásához is használhatja. Például, ha egy olyan fájlból származik, amely fájlokat mentett el egy furcsa bináris formátumban, akkor a "stringek" segítségével kiválaszthatja a fájlba helyezett szöveget.

A karakterláncok parancsának használata

Egy nagyszerű módja annak, hogy bemutassuk a stringek parancsának erejét, létrehozzunk egy dokumentumot a LibreOffice Writer használatával.

Egyszerűen nyissa meg a LibreOffice Writert, és írjon be néhány szöveget, majd mentse el a szabványos ODT formátumban .

Most nyisson meg egy terminál ablakot (nyomja meg egyszerre a CTRL, ALT és T billentyűkombinációt), majd a cat parancs segítségével jelenítse meg a fájlt az alábbiak szerint:

macska afilmenéved.odt | több

(Cserélje ki a filename.odt-ot a létrehozott fájl nevével)

Amit látni fogsz, olvashatatlan szöveg egész falát.

A fájl mentéséhez nyomja meg a szóköz billentyűt. Az egész fájlban szórványosan láthatja a beírt szöveg néhány részét.

A karakterláncok parancsot csak az emberi olvashatóságú részek megjelenítésére lehet használni.

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

stringek yourfilename.odt | több

Mint korábban, megjelenik egy szövegfal, de csak a szöveg, amit emberként olvashatsz. Ha szerencséd van akkor látni fogja a szöveget.

Amit látni fog, ez kulcsfontosságú azonban az első sorban:

mimetypeapplication / vnd.oasis.opendocument.text

Tudjuk, hogy a fájltípus LibreOffice Writer ODT fájl 2 okból:

  1. Készítettük a fájlt
  2. A kiterjesztés .ODT

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

A Windows helyreállítása gyakran a 0001, 0002, 0003 stb. Nevű fájlokat helyreállítja. A fájlok helyreállítása nagyszerű, de próbálta kitalálni, hogy milyen típusú fájlok voltak rémálmok.

A karakterláncok használatával küzdési esélye van a fájl típusának megmunkálására. Tudva, hogy egy fájl egy opendocument.text fájl, azt mentheti az ODT kiterjesztéssel, és megnyithatja a LibreOffice íróban.

Abban az esetben, ha nem tud róla, hogy egy ODT fájl alapvetően tömörített fájl. Ha átnevezed a filename.odt fájlt a filename.zip fájlba, megnyithatod azt egy archiváló eszközben, és kibonthatod a fájlt.

Alternatív viselkedések

Alapértelmezés szerint a stringek parancs egy fájlon belül minden stringet visszaad, de megváltoztathatja a viselkedést úgy, hogy a stringek egy fájlban lévő inicializált, betöltött adatszakaszokból térjenek vissza.

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

Jól feltételezhető, hogy sztringeket használsz, hogy megpróbáljam megkeresni a fájltípust, vagy keresni egy adott szöveget egy fájlban.

Ha a sztringek parancsot az alapértelmezett viselkedéssel futtatja, akkor nem kapja meg a kívánt kimenetet, akkor próbálja meg a következő parancsok egyikét futtatni, hogy megnézze, hogy ez a különbség:

stringek -d a saját nevét

karakterláncok --adatfilmet

A manuális oldal azt állítja, hogy a fenti parancs segíthet a karakterláncokból visszavert szemét mennyiségének csökkentésében.

A "stringek" parancsot úgy állíthatjuk be, hogy fordítottan működjön úgy, hogy a mínusz d kapcsoló az alapértelmezett viselkedés. Ha ez a helyzet a rendszeren, akkor az alábbi parancs segítségével visszaadhatja az összes adatot:

karakterláncok -a sajátfilename

Kimenet formázása

A kimeneti szövegen belül megjelenik a szöveg neve a fájl minden egyes sorához.

Ehhez futtassa az alábbi parancsok valamelyikét:

karakterláncok -f a saját nevét

karakterláncok --print-file-name yourfilename

A kimenet most úgy néz ki, mint ez:

Yourfilename: egy szövegdarab

yourfilename: egy másik szöveg

A kimenet részeként megjelenítheti azt is, hogy melyik szöveg jelenjen meg egy fájlban. Ehhez futtassa a következő parancsot:

karakterláncok - a sajátfilename

A kimenet így fog kinézni:

16573 a te

17024 szöveg

Az offset valójában az oktális eltolás, bár attól függően, hogy a vonalakat összeállították a rendszeredhez, könnyen lehet a hex vagy a decimális eltolás is.

Pontosabb módja annak, hogy megkapja a kívánt eltolást az alábbi parancsok használatával:

karakterláncok -td

karakterláncok - a saját nevéhez

karakterláncok - a saját nevét

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

Alapértelmezés szerint a stringek parancs új sorokat nyomtat minden új karakterlánccal, de megadhatja a választó határt. Például, ha egy határolójelet ("|") használ a határoló, a következő parancsot futtatja:

stringek -s "|" yourfilename

Állítsa be a string határt

A stringek parancs alapértelmezés szerint egy sor 4 nyomtatható karaktert keres. Beállíthatja az alapértelmezett értéket úgy, hogy csak egy 8 karakterrel vagy 12 nyomtatható karakterrel rendelkező karakterláncot jelenítsen meg.

Ezzel a korláttal állíthatja be a kimenetet, hogy a lehető legjobb eredményt kapja. Ha túl hosszú hosszú karaktersorozatot keresel, fennáll annak a kockázata, hogy elhagyod a hasznos szöveget, de túl rövidnek tűnik, akkor sokkal több rothadás érhető el.

A string korlátozásának beállításához a következő parancsot kell futtatni:

karakterláncok -n 8 a saját nevét

A fenti példában a korlátot 8-ra módosítottuk.

A 8-at helyettesítheti a kívánt számmal.

A következő parancsot is használhatja, hogy ugyanezt tegye:

karakterláncok --bytes = 8 a teendőid neve

Beleértve a fehéreket

Alapértelmezés szerint a karakterláncok parancs nyomtatható karakterként tartalmaz egy fehérséget, például egy fület vagy helyet. Ezért ha van egy olyan karakterlánc, amely úgy szól, hogy "a macska ült a szőnyegen", akkor a stringek parancs visszaküldi az egész szöveget.

Az új vonal karakterek és a kocsi visszaadása nem tekinthető nyomtatható karaktereknek.

Ahhoz, hogy a vonalak jelezzék az új vonal karaktereket és a kocsi visszatérjen nyomtatható karakterként a következőképpen:

karakterláncok -w a teendőneve

A kódolás módosítása

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

Az alapértelmezés 7 bites byte.

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

karakterláncok - a saját nevét

karakterláncok --encoding = s a teendőid neve

A fenti parancsban megadtam az alapértelmezett "s" -t, ami 7 bit byte-ot jelent. Egyszerűen cserélje ki az "s" -et az Ön által kiválasztott kódolással.

A bináris fájl leírása név megváltoztatása

Megváltoztathatja a karakterláncok viselkedését úgy, hogy más, a rendszeréhez megadott bináris fájlleíró-könyvtárat használ.

Ez a kapcsoló egy a szakértők számára. Ha másik könyvtárat szeretne használni, akkor a következő parancssorok futtatásával teheti meg ezt:

stringek -T bfdname

Olvasási beállítások fájlból

Ha mindig ugyanazokat az opciókat fogja használni, akkor nem kell minden kapcsolót megadnia minden egyes parancs futtatásakor, mert időbe telik.

Amit tehetünk, készítsünk egy szöveges fájlt a nano használatával, és megadjuk a fájlon belüli opciókat.

A terminálon belüli kipróbáláshoz a következő parancsot kell futtatni:

nano stringsopts

A fájlban adja meg a következő szöveget:

-f-o-n3-s "|"

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

A karakterláncok paranccsal történő futtatásához hajtsa végre a következő parancsot:

a strings @stringsopts a teendőid nevét

Az opciókat a file stringsopts-ból olvassuk, és minden egyes karakterlánc előtt meg kell adnunk a fájlnevet, az offsetet és a "|" mint elválasztó.

Súgó beszerzése

Ha többet szeretne olvasni a húrokról, akkor a következő parancsot futtathatja segítségért.

sztringek --help

Alternatív megoldásként elolvashatja a manuális oldalt is:

férfi szálak

Megtudhatja, milyen verziókban fut a húrok

A futó karakterek verziójának megkereséséhez futtassa az alábbi parancsok valamelyikét:

vonósok -v

stringek -V

stringek --verzió