Ați încercat vreodată să deschideți un fișier într-un editor doar pentru a afla că acesta conține conținut binar necitit?
Comanda "Comenzi" Linux permite vizualizarea caracterelor care pot fi citite de om în orice fișier.
Scopul principal al utilizării comenzii "șiruri" este de a determina ce tip de fișier este privit, dar îl puteți folosi și pentru extragerea textului. De exemplu, dacă aveți un fișier dintr-un program proprietar care salvează fișierele într-un format binar ciudat, puteți utiliza "șiruri" pentru a extrage textul pe care îl introduceți în fișier.
Exemplu de utilizare a comenzii de șir
O modalitate foarte bună de a demonstra puterea comenzii de șiruri este de a crea un document utilizând LibreOffice Writer.
Pur și simplu deschideți LibreOffice Writer și introduceți un text și salvați-l în format ODT standard.
Acum, deschideți o fereastră terminală (apăsați CTRL, ALT și T simultan) și apoi utilizați comanda cat pentru a afișa fișierul după cum urmează:
pisica ta Mai Mult
(Înlocuiți numele fișierului dvs. cu numele fișierului pe care l-ați creat)
Ce veți vedea este un zid întreg de text ilizibil.
Apăsați bara de spațiu pentru a derula fișierul. În mod sporadic în fișier veți vedea o parte din textul pe care l-ați introdus.
Comanda "Corzi" poate fi utilizată pentru a afișa doar părțile care pot fi citite de om.
În forma sa cea mai simplă, puteți executa următoarea comandă:
siruri de caractere Mai Mult
Ca și înainte, va apărea un zid de text, dar numai un text pe care îl puteți citi ca om. Dacă sunteți norocoși atunci veți putea vedea textul.
Ceea ce veți putea vedea că este esențial, totuși, se află pe prima linie:
mimetypeapplication / vnd.oasis.opendocument.text
Știm că tipul de fișier este un fișier ODT LibreOffice Writer pentru 2 motive:
- Am creat fișierul
- Extensia este .ODT
Imaginați-vă că nu ați creat fișierul sau că ați găsit fișierul pe un disc recuperat și că fișierul nu a avut o extensie.
Recuperarea Windows ar recupera adesea fișiere cu nume precum 0001, 0002, 0003 etc. Faptul că fișierele au fost recuperate este mare, dar încercarea de a determina ce tipuri de fișiere au fost un coșmar.
Folosind șiruri de caractere aveți o șansă de a lucra la tipul de fișier. Știind că un fișier este un fișier opendocument.text înseamnă că îl puteți salva cu extensia ODT și îl puteți deschide în scriitorul LibreOffice.
În cazul în care nu știați că un fișier ODT este în esență un fișier comprimat. Dacă vă redenumiți numele fișierului.odt la numele dvs. de fișier.zip îl puteți deschide într-un instrument de arhivare și chiar dezarhivați fișierul.
Comportamente alternative
În mod implicit, comanda de șiruri returnează toate șirurile dintr-un fișier, dar puteți comuta comportamentul astfel încât să returneze șiruri din secțiunile de date inițializate, încărcate într-un fișier.
Ce înseamnă exact asta? Nimeni nu pare să știe.
Este logic să presupuiți că utilizați șiruri de caractere pentru a încerca fie să aflați tipul de fișier, fie să căutați un text specific într-un fișier.
Dacă atunci când rulați comanda șirurilor utilizând comportamentul implicit nu obțineți ieșirea pe care ați sperat, atunci încercați să executați una din următoarele comenzi pentru a vedea dacă aceasta are o diferență:
Pagina manuală afirmă că comanda de mai sus poate ajuta la reducerea cantității de gunoi returnate din șiruri de caractere. Comanda "șiruri" poate fi configurată să funcționeze în sens invers, astfel încât comutatorul minus d să fie comportamentul implicit. Dacă acesta este cazul în sistemul dvs., puteți returna toate datele utilizând următoarea comandă: Puteți obține textul în ieșire pentru a afișa numele fișierului alături de fiecare rând de text. Pentru aceasta, executați una din următoarele comenzi: Rezultatul va arata acum cam asa: Ca parte a ieșirii, puteți afișa și decalajul unde apare textul într-un fișier. Pentru aceasta, rulați următoarea comandă: Rezultatul va arata cam asa: Offsetul este de fapt offsetul octal, deși, în funcție de modul în care s-au compilat șiruri pentru sistemul dvs., ar putea fi cu ușurință hexazecimal sau decalajul zecimal. O modalitate mai exactă de obținere a offsetului dorit este utilizarea următoarelor comenzi: Minus t înseamnă returnarea offsetului, iar caracterul care urmează determină tipul de offset. (adică d = zecimal, o = octal, h = hex). Implicit, comanda de șiruri imprimă fiecare șir nou pe o linie nouă, dar puteți seta delimitatorul la alegere. De exemplu, pentru a utiliza un simbol de țeavă ("|") ca delimitator rulați următoarea comandă: Comanda "Corzi" implicit caută un șir de 4 caractere imprimabile la rând. Puteți ajusta valoarea implicită astfel încât să returneze doar un șir cu 8 caractere imprimabile sau 12 caractere imprimabile. Prin ajustarea acestei limite, puteți ajusta rezultatul pentru a obține cel mai bun rezultat posibil. Căutând un șir prea lung, riscați să omiteți textul util, dar făcându-l prea scurt, s-ar putea să ajungeți cu mult mai mult junk returnat. Pentru a ajusta limita de șir rulați următoarea comandă: În exemplul de mai sus am modificat limita la 8.Puteți înlocui numărul 8 cu numărul ales. De asemenea, puteți utiliza următoarea comandă pentru a face același lucru: În mod implicit, comanda de șiruri include spații albe, cum ar fi o filă sau spațiu, ca personaj imprimabil. Prin urmare, dacă aveți un șir care citește ca "pisica așezată pe covor", atunci comanda de șiruri va returna întregul text. Noile caractere de linie și caracterele returnate nu sunt considerate ca fiind caractere imprimabile în mod implicit. Pentru a obține șiruri de caractere pentru recunoașterea caracterelor de linii noi și retururi ca un caractere imprimabile, rulați șiruri de caractere în felul următor: Există 5 opțiuni de codare disponibile pentru utilizarea cu șiruri de caractere: Valoarea prestabilită este de 7 biți octeți. Pentru a schimba codarea rulați următoarea comandă: În comanda de mai sus, am specificat implicit "s", ceea ce înseamnă 7 octeți de biți. Pur și simplu înlocuiți "s" cu litera de codare la alegere. Puteți modifica comportamentul șirurilor de caractere astfel încât să utilizeze o altă bibliotecă de descriptori de fișiere binare diferită de cea furnizată pentru sistemul dvs. Acest comutator este unul pentru experți. Dacă aveți o altă bibliotecă pe care să o utilizați, puteți face acest lucru executând următoarea comandă de șiruri: Dacă veți folosi aceleași opțiuni de fiecare dată, atunci nu doriți să specificați toate comutatoarele de fiecare dată când executați comanda deoarece este nevoie de timp. Ce puteți face este să creați un fișier text utilizând nano și să specificați opțiunile din acel fișier. Pentru a încerca acest lucru într-un terminal executați următoarea comandă: În fișier introduceți următorul text: Salvați fișierul apăsând CTRL și O și ieșiți apăsând CTRL și X. Pentru a rula comenzile de șiruri cu aceste opțiuni executați următoarea comandă: Opțiunile vor fi citite din fișierele stringsopts și ar trebui să vedeți numele fișierului înainte de fiecare șir, offsetul și "|" ca separator. Dacă doriți să citiți mai multe despre șiruri de caractere, puteți rula următoarea comandă pentru a obține ajutor. Alternativ, puteți citi și pagina manuală: Pentru a găsi versiunea de șiruri pe care rulează rulați una din următoarele comenzi:șiruri de caractere -d numele fișierului
siruri de caractere - da numele fișieruluisiruri de caractere - numele tau
Formatare ieșire
siruri de caractere -f numele dvs. de fișier
șiruri - fișier-fișier-nume-numele fișieruluinumele fișierului: o bucată de text
numele fișierului dvs.: o altă piesă de textsiruri de caractere - numele tau
16573 dvs.
17024 text
șiruri de caractere - d dați numele fișierului
siruri de caractere - numele tausiruri de caractereșiruri de caractere "|" yourfilename
Ajustați limita de coarde
șiruri de caractere -n 8 numele fișierului
șiruri de caractere --bytes = 8 numele fișierului
Includeți spațiile libere
siruri de caractere
Schimbarea codificării
siruri de caractere - este numele tau
șiruri de caractere - encoding = s numele fișierului Modificați numele descrierii fișierului binar
șiruri de caractere -T bfdname
Opțiunile de citire dintr-un fișier
nano stringsopts
-f -o -n 3 -s "|" "
șirurile stringsoptestează numele fișierului
Obținerea de ajutor
siruri de caractere --help
corzi de om
Aflați ce versiune de corzi sunteți în desfășurare
șiruri de caractere -v
siruri de caractere -Vșiruri - versiune