Kaip rodyti failo spausdintinius simbolius su komandų eilėmis

Ar kada nors bandėte atidaryti failą redaktoriuje tik norėdami sužinoti, kad jame yra neskaitytino dvejetainio turinio?

Komandos " Linux " eilutės leidžia peržiūrėti žmogaus raiškius simbolius bet kuriame faile.

Pagrindinis "komandų eilučių" naudojimo tikslas yra išsiaiškinti, kokio tipo failą jis žiūri, bet jūs taip pat galite jį naudoti norėdami gauti tekstą. Pavyzdžiui, jei turite failą iš patentuotos programos, kurioje įrašomi failai keista dvejetainiu formatu, galite naudoti "stygos", norėdami išgauti įvestą tekstą į failą.

Pavyzdys, naudojamas Strings Command

Puikus būdas parodyti komandų stygų galią - sukurti dokumentą, naudojant "LibreOffice Writer".

Tiesiog atidarykite LibreOffice Writer ir įveskite kokį nors tekstą, tada išsaugokite jį standartiniame ODT formate .

Dabar atidarykite terminalo langą (tuo pačiu metu paspauskite CTRL, ALT ir T), tada naudokite kačių komandą , kad failas būtų rodomas taip:

katė yourfilename.odt | daugiau

(Pakeiskite yourfilename.odt su failo pavadinimu, kurį sukūrėte).

Ką pamatysi, yra visa neįskaitomo teksto siena.

Paspauskite tarpo klavišą, kad peržiūrėtumėte failą. Visame faile sporadiškai pamatysite kai kuriuos įvestus tekstus.

Styginių komanda gali būti naudojama rodyti tik tas dalis, kurias galima skaityti.

Paprastesnėje formoje galite paleisti šią komandą:

strings yourfilename.odt | daugiau

Kaip ir anksčiau, atsiras teksto siena, bet tik tekstas, kurį galėsite perskaityti kaip žmogų. Jei jums sekasi, galėsite pamatyti savo tekstą.

Tačiau tai, ką pamatysite, yra raktas, yra pirmoje eilutėje:

mimetypeapplication / vnd.oasis.opendocument.text

Mes žinome, kad failo tipas yra "LibreOffice Writer ODT" failas 2 priežasčių:

  1. Mes sukūrėme failą
  2. Išplėtimas yra .ODT

Įsivaizduokite, kad nesukūrėte failo arba neradote failo atkurtajame diske, o failas neturėjo plėtinio.

"Windows" atkūrimas dažnai atkuria failus su vardais, tokiais kaip 0001, 0002, 0003 ir tt Tai, kad failai buvo atkurti, yra puikus, bet bando išsiaiškinti, kokie šių failų tipai buvo košmaras.

Naudodami stygas turite galimybę kovoti su failo tipu. Žinant, kad failas yra opendocument.text failas, galite jį įrašyti naudodami ODT plėtinį ir atidaryti jį LibreOffice rašytojui.

Jei neturėtumėte žinoti, ODT failas iš esmės yra suspaustas failas. Jei pervadinsite savofilename.odt į yourfilename.zip, galite jį atidaryti archyvavimo įrankyje ir net išsisukti failą.

Alternatyvios elgsenos

Pagal numatytuosius žodžius komanda stygos grąžina visas eilutes failo viduje, bet jūs galite perjungti elgesį taip, kad ji grąžintų eilutes iš failų, kurie buvo įkeliami į pradines, įkeltas.

Ką tai tiksliai reiškia? Atrodo, kad niekas nežino.

Tikslinga manyti, kad naudojate stygas, kad bandytumėte arba išsiaiškintumėte failo tipą arba ieškotumėte konkretaus teksto failo.

Jei paleisdami komandą strings, naudodami numatytąją elgseną, jūs negaunate išėjimo, kurį tikėjotės, tada pabandykite paleisti vieną iš šių komandų, kad pamatytumėte, ar tai įtakoja skirtumą:

strings -d yourfilename

strings - data yourfilename

Vadovo puslapyje nurodyta, kad aukščiau pateikta komanda gali padėti sumažinti iš eilučių sugadintą šiukšlių kiekį.

Komandą "strings" galima nustatyti taip, kad veiktų atvirkščiai, kad minusas d jungiklis būtų numatytasis elgesys. Jei taip yra jūsų sistemoje, tuomet galite grąžinti visus duomenis naudodami šią komandą:

strings-yourfilename

Formatavimo išvestis

Galite gauti tekstą išėjimo lauke, kad būtų rodomas failo pavadinimas kartu su kiekviena teksto eilute.

Norėdami tai padaryti, paleiskite vieną iš šių komandų:

strings -f yourfilename

strings -print-file-name yourfilename

Dabar produkcija bus tokia:

yourfilename: teksto dalis

yourfilename: dar viena teksto dalis

Kaip išvesties dalį taip pat galite parodyti, kur tekstas į failą atsiranda. Norėdami tai padaryti, paleiskite šią komandą:

strings-yourfilename

Išvestis atrodys taip:

16573 tavo

17024 tekstas

Išlyginimas iš tikrųjų yra aštuonkampis poslinkis, tačiau priklausomai nuo to, kaip stygos buvo surinktos jūsų sistemai, taip pat gali būti šešioliktainis ar dešimtainis išlyginimas.

Tikslesnis nuskaitymo būdas yra naudoti šias komandas:

strings -td yourfilename

strings-to yourfilename

strings-yourfilename

Minusas t reiškia grąžinti poslinkį, o sekantis simbolis nustato kompensavimo tipą. (ty d = dešimtainis, o = octal, h = hex).

Pagal numatytuosius žodžius komandų eilutės spausdina kiekvieną naują eilutę naujoje eilutėje, tačiau galite nustatyti pasirinktą atskirtį. Pavyzdžiui, norėdami naudoti vamzdžio simbolį ("|") kaip skirtuką paleiskite šią komandą:

stygos -s "|" tavofilename

Nustatykite styginių ribą

Numatyta eilučių komanda pagal nutylėjimą atveria eilutę iš 4 spausdinamų simbolių iš eilės. Galite koreguoti numatytąjį, kad tik grąžina eilutę su 8 spausdinamais rašmenimis arba 12 spausdinamų simbolių.

Koreguodami šią ribą, galite pritaikyti išvestį, kad gautumėte geriausią galimą rezultatą. Ieškodama per ilgos eilutės, jūs rizikuojate praleisti naudingą tekstą, tačiau dėl to, kad jis per trumpas, galbūt baigsis daug grubesnės.

Norėdami nustatyti eilutės ribą, paleiskite šią komandą:

stygos -n 8 yourfilename

Pirmiau pateiktame pavyzdyje aš pakeitiau apribojimą iki 8.

Galite pakeisti 8 savo pasirinktu numeriu.

Taip pat galite naudoti šią komandą:

strings -bytes = 8 yourfilename

Įtraukti tarpą

Pagal numatytuosius nustatymus komandų eilutės apima tarpą, pvz., Skirtuką arba tarpą, kaip spausdinamą simbolį. Todėl, jei turite eilutę, kuri rašoma kaip "katė sėdėjo ant kilimėlio", tada eilučių komanda grąžins visą tekstą.

Pagal numatytuosius nustatymus naujos eilutės simboliai ir vežimėlio grąžinimai nelaikomi spausdinamais rašmenimis.

Norėdami gauti eilutes, kad atpažintų naujus eilučių simbolius, ir vežimėlis grąžina kaip spausdinamą simbolių paleidimo eilutes tokiu būdu:

strings -w yourfilename

Keisti kodavimą

Yra 5 kodavimo parinktys, kurias galima naudoti su stygomis:

Numatytasis yra 7 bitų baitų.

Norėdami pakeisti kodavimą paleiskite šią komandą:

stygos - jūsų filename

strings --encoding = s yourfilename

Pagal pirmiau pateiktą komandą aš nurodžiau numatytąjį "s", kuris reiškia 7 bitų baitą. Paprasčiausiai pakeiskite "s" ir pasirinktą kodavimo raidę.

Pakeiskite dvejetainio failo aprašo pavadinimą

Galite pakeisti eilučių elgseną, kad ji naudotų kitą dvejetainių failų deskriptorių biblioteką, išskyrus tuos, kurie buvo jūsų sistemoje.

Šis jungiklis yra skirtas ekspertams. Jei turite kitą biblioteką, galite tai padaryti, paleisdami šią komandų eilutę:

strings-T bfdname

Skaitymo parinktys iš failo

Jei ketinate naudoti tas pačias parinktis kiekvieną kartą, jūs nenorite nurodyti visų jungiklių kiekvieną kartą paleidus komandą, nes tai užtruks.

Ką jūs galite padaryti, tai sukurti tekstinį failą naudojant nano ir nurodyti toje byloje esančias parinktis.

Norėdami išbandyti šį terminalą paleiskite šią komandą:

nano stringsopts

Į failą įveskite šį tekstą:

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

Išsaugokite failą paspausdami CTRL ir O ir išeikite paspausdami CTRL ir X.

Norėdami paleisti eilučių komandas su šiomis parinktimis, paleiskite šią komandą:

stygos @ stringsopts yourfilename

Parinktys bus skaitomos iš failo stringsopts ir prieš kiekvieną eilutę, nuokrypį ir "|" turėtumėte pamatyti failo vardą. kaip atskyriklis.

Gauti pagalbos

Jei norite daugiau sužinoti apie eilutes, galite gauti šią komandą, kad gautumėte pagalbos.

strings --help

Arba taip pat galite perskaityti vadovą puslapį:

vyras strings

Sužinokite, kokia eilučių versiją paleidžiate

Jei norite rasti naudojamų eilučių versiją, paleiskite vieną iš šių komandų:

stygos -v

stygos -V

stygos --versija