Kako prikazati znakove za štampanje datoteke sa komandom struna

Da li ste ikada pokušali da otvorite datoteku u uredniku samo da biste saznali da sadrži nečitljiv binarni sadržaj?

Komanda Linux "strings" omogućava prikaz ljudskih čitljivih znakova unutar bilo koje datoteke.

Glavna svrha upotrebe komande "strings" je da izradi kakvu vrstu datoteke gledate, ali možete ga koristiti i za ekstrakciju teksta. Na primjer, ako imate datoteku iz vlasničkog programa koji čuva datoteke u čudnom binarnom formatu možete koristiti "stringove" da izvučete tekst koji ste stavili u datoteku.

Primer upotrebe komande struna

Odličan način da demonstrirate moć ukaza strune je da kreirate dokument koristeći LibreOffice Writer.

Jednostavno otvorite LibreOffice Writer i unesite neki tekst, a zatim ga sačuvajte u standardnom formatu ODT .

Sada otvorite prozor terminala (istovremeno pritisnite tastere CTRL, ALT i T), a zatim koristite komandu cat da biste prikazali datoteku na sledeći način:

mačka yourfilename.odt | više

(Zamijenite yourfilename.odt sa imenom datoteke koju ste kreirali)

Ono što ćete videti je čitav zid nečitljivog teksta.

Pritisnite razmaknicu da biste se pomerali kroz datoteku. Sporadično kroz celu datoteku videćete neka od tekstova koji ste uneli.

Komanda strings može se koristiti za prikazivanje samo delova koji su ljudski čitljivi.

U najjednostavnijem obliku možete pokrenuti sledeću naredbu:

strings yourfilename.odt | više

Kao i ranije, pojavit će se zid teksta, ali samo tekst koji možete čitati kao čovjeka. Ako imate sreće onda ćete moći da vidite svoj tekst.

Međutim, ono što ćete moći da vidite, ključna je na prvoj liniji:

mimetypeapplication / vnd.oasis.opendocument.text

Znamo da je tip fajla datoteka ODB-a LibreOffice Writer iz 2 razloga:

  1. Mi smo kreirali datoteku
  2. Produžetak je .ODT

Zamislite da niste napravili datoteku ili ste pronašli datoteku na obnovljenom disku, a datoteka nije imala dodatak.

Oporavak operativnog sistema Windows često bi obnavljao datoteke sa imenima kao što su 0001, 0002, 0003 itd. Činjenica da su datoteke obnovljene je odlično, ali pokušavajući da otkriju koje vrste tih datoteka su bile noćna mora.

Korišćenjem žica imate mogućnost izbora tipa datoteke. Znajući da je datoteka datoteka opendocument.text, možete je sačuvati sa ODT ekstenzijom i otvoriti je u LibreOffice pisaču.

U slučaju da niste bili svjesni da je datoteka ODT u osnovi komprimirana datoteka. Ako preimenovate yourfilename.odt na yourfilename.zip možete ga otvoriti u alatku za arhiviranje, pa čak i odštampati datoteku.

Alternative Behaviors

Po pravilu, komanda strings vraća sve nizove unutar datoteke, ali možete poništiti ponašanje tako da vraća stringove iz inicijalizovanih, učitanih sekcija podataka u datoteku.

Šta to tačno znači? Izgleda da niko ne zna.

Ima smisla pretpostaviti da koristite stringove da biste pokušali ili saznati tip datoteke ili tražiti određeni tekst u datoteci.

Ako koristite podrazumevano ponašanje kada koristite podrazumevano ponašanje, nećete dobiti izlaz na koji ste se nadali i pokušajte da pokrenete neku od narednih naredbi da biste utvrdili da li to čini razliku:

string -d yourfilename

string -data yourfilename

U priručniku se navodi da gornja komanda može pomoći u smanjivanju količine otpada koji se vraća iz žica.

Komanda "strings" se može podesiti da radi obratno, tako da je minus d prekidač podrazumevano ponašanje. Ako je to slučaj na vašem sistemu, možete vratiti sve podatke pomoću sledeće naredbe:

string-a yourfilename

Formatiranje izlaza

Možete dobiti tekst unutar izlaza da biste prikazali ime datoteke pored svake linije teksta.

Da biste to uradili pokrenite jednu od sledećih naredbi:

string -f yourfilename

stringovi --print-file-name yourfilename

Izlaz će sada izgledati ovako:

yourfilename: komad teksta

yourfilename: još jedan tekst

Kao deo izlaza možete takođe prikazati offset gdje se taj tekst pojavljuje u datoteci. Da biste to učinili, pokrenite sledeću komandu:

string-o yourfilename

Izlaz će izgledati ovako:

16573 vaš

17024 tekst

Ofset je zapravo oktalni ofset, iako ovisno o tome kako su stringovi sakupljeni za vaš sistem, lako bi mogao biti hex ili decimalni ofset.

Tačniji način dobijanja offset-a je da koristite sledeće naredbe:

strings -td yourfilename

string-to yourfilename

stringovi -i yourfilename

Minus t znači vraćanje offset-a i karakter koji sledi određuje tip offset-a. (tj. d = decimalni, o = oktalni, h = heks).

Podrazumevano, naredba stringova štampa svaki novi niz na novoj liniji, ali možete podesiti ograničenje po vašem izboru. Na primjer, za korištenje simbola cijevi ("|"), dok razdjelnik pokreće sljedeću komandu:

stringovi -s "|" yourfilename

Prilagodite granični niz

Komanda stringova podrazumevano traži niz od četiri broja za štampanje u nizu. Možete podesiti podrazumevano tako da on vraća samo niz sa 8 znakova za štampanje ili 12 znakova za štampanje.

Prilagođavanjem ovog ograničenja možete prilagoditi izlaz kako biste dobili najbolji mogući rezultat. Ako tražite niz koji je predugačak, rizikujete ispuštanje korisnog teksta, ali ako to bude suviše kratko, možda ćete završiti sa daleko više neželjenog vraćanja.

Da biste podesili ograničenje stringa pokrenite sledeću komandu:

string -n 8 yourfilename

U gore navedenom primeru promijenio sam limit na 8.

Možete zameniti 8 sa brojem po vašem izboru.

Takođe možete koristiti sledeću naredbu:

stringovi --bytes = 8 yourfilename

Uključite beline

Podrazumevano, komanda strona uključuje prostirke kao što je kartica ili prostor kao znak za štampanje. Prema tome, ako imate niz koji se čita kao "mačka sedela na matu", onda će komanda stringova vratiti ceo tekst.

Po pravilu se ne smatraju novim znakovima i povratnim brojevima znakovi za štampanje.

Da biste dobili nizove da prepoznaju nove linijske znakove i povratak kola kao znak za štampanje, pokrenite nizove na sledeći način:

string-w yourfilename

Promijenite Encoding

Na raspolaganju su 5 opcija za kodiranje sa nizovima:

Podrazumevano je 7-bitni bajt.

Da biste promenili kodiranje, pokrenite sledeću komandu:

stringovi - su yourfilename

stringovi - encoding = s yourfilename

U gornjoj komandi sam odredio podrazumevani "s" što znači 7-bitni bajt. Jednostavno zamenite "s" kodom za šifriranje po vašem izboru.

Promenite ime opisa binarnih datoteka

Možete promeniti ponašanje niza tako da koristi drugu biblioteku deskriptora binarnih datoteka, a ne onu koja je predviđena za vaš sistem.

Ovaj prekidač je jedan za stručnjake. Ako imate drugu biblioteku koju možete koristiti onda to možete uraditi tako što ćete pokrenuti sljedeću naredbu:

string -T bfdname

Opcije čitanja iz datoteke

Ako ćete svaki put koristiti iste opcije onda ne želite da navedete sve prekidače svaki put kada pokrenete komandu, jer je potrebno vremena.

Ono što možete učiniti je da kreirate tekstualnu datoteku koristeći nano i navedite opcije unutar te datoteke.

Da biste isprobali ovo u okviru terminala pokrenite sledeću komandu:

nano stringsopts

U fajlu unesite sledeći tekst:

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

Sačuvajte datoteku pritiskom na CTRL i O i izađite pritiskom na CTRL i X.

Da biste pokrenuli komande niza sa ovim opcijama pokrenite sledeću komandu:

strings @stringsopts yourfilename

Opcije će biti pročitane iz stringsopts fajla i trebali biste videti ime datoteke prije svake niza, ofset i "|" kao separator.

Dobijanje pomoći

Ako želite pročitati više o strunama, možete pokrenuti sljedeću komandu da biste dobili pomoć.

strune - pomoć

Alternativno, takođe možete pročitati stranicu sa uputstvima:

čoveka

Saznajte koja je verzija niza koje trčite

Da biste pronašli verziju niza koje pokrećete pokrenite jednu od sledećih naredbi:

stringovi -v

stringovi -V

stringovi - verzija