Ați învățat cum să creați scripturi, să folosiți argumente și să construiți pentru bucle. Acum, să aruncăm o privire asupra mai multor comenzi de bază, manipularea fișierelor text și redirecționarea intrărilor și ieșirilor către fișiere și alte comenzi.
V-am oferit deja o defalcare de bază a script-urilor shell și a unui contur bazat pe exemple de for loop-uri, dar asigurați-vă că verificați acele articole dacă ați pierdut până acum ghidul de scripting pentru shell.
Linia de comandă este minunată din mai multe motive, iar redirecționarea este una dintre cele mai proeminente. Dacă ar fi trebuit să remarcați și să reproduceți rezultatul fiecărei comenzi pentru a lua măsuri suplimentare sau pentru a folosi ceva pentru altceva, atunci am fi fost toți nebuni de mult timp în urmă. Redirecționarea ne permite să folosim acea ieșire și să o salvăm sau să o folosim imediat ca o intrare pentru o altă comandă. De asemenea, putem folosi fișierele ca intrări pentru alte comenzi.
Înainte de a continua, să acoperim câteva comenzi de bază care pot fi folosite în multe locuri diferite.
ecou - Această comandă imprimă (afișează) întregul argument pe linia de comandă ca ieșire
echo argument cu spații
După cum puteți vedea, personajele speciale trebuie să fie "scăpate", astfel încât acestea să fie tratate în mod normal. Acest lucru se face prin utilizarea unei loviri înapoi (\) în fața caracterului. Este o idee mai bună de a utiliza citate. Comanda ecou funcționează și cu variabilele.
După cum puteți vedea, citatele unice și duble se comportă diferit. Pentru mai multe informații, verificați care este diferența dintre cotații unice și cele duble în Bash Shell?
pisică - Această comandă afișează conținutul fișierelor text ca ieșire.
pisica file_to_be_read
Să presupunem că vom crea acest fișier text în nano:
Când folosim comanda pisică pe fișier, vedem că este ieșită.
grep - Aceasta este una dintre cele mai puternice și utile comenzi disponibile în Linux. Este vorba de imprimare globală / regulată a expresiei. Se uită printr-un fișier și tipărește orice linie care se potrivește cu un anumit tipar. Deoarece acest model se bazează pe "expresia regulată", o linie concisă poate genera o multitudine de modele care să fie potrivite. Pentru că nu, puteți să introduceți un țarc pentru a căuta.
grep file pattern
Vă asigur că grep poate face mai mult, dar acum să rămânem la lucrurile mai ușoare.
Pentru a redirecționa ieșirea unei comenzi într-un fișier, folosim un caracter special, cel mai mare decât simbolul (>).
Să ne schimbăm lista, nu? Introduceți următoarea comandă:
echo pepperoni> listă
Puteți vedea că ecoul nu mai afișează linia și când privim conținutul fișierului "listă", vedem ce am reluat acolo.
De asemenea, rețineți că conținutul anterior al "listei" a fost eliminat. Incearca din nou:
Acest lucru poate fi util atunci când doriți să reutilizați un fișier, dar de multe ori pur și simplu dorim să adăugăm la un fișier existent. Pentru aceasta, folosim două simboluri mai mari decât cele consecutive:
echo ardei galbeni >>
Uşor! Să folosim această comandă pentru a crea o listă mai mare, nu?
Vom merge acolo. Cred că puteți vedea de ce atât de mulți geeks folosesc linia de comandă pentru a face liste de lucru și altele asemenea, dar devine și mai bună.
Să luăm rezultatul unei comenzi și să o punem într-un fișier:
ls -al /> ~ / rootlist
Efectuarea listelor de fișiere, editarea acestora și rularea comenzilor pe cele dorite nu a fost niciodată mai simplă. Și, în timp ce facem aceste funcții de bază în linia de comandă, funcționează bine și în scripturi.
Conducta este numită așa, deoarece folosește țeavă, (|; partajată cu tasta \ pe majoritatea tastaturilor). În esență, este nevoie de ieșirea unei singure comenzi și o alimentează direct în alta. Puteți crea lanțuri lungi de comenzi pentru a obține o ieșire foarte specifică dorită în acest fel și este foarte convenabil pentru comenzi precum grep.
Acționează mult ca ">", cu excepția faptului că poate fi înlănțuită de mai multe ori, iar efectul său este mai general, deoarece nu are nevoie să treacă printr-un fișier text.
După cum puteți vedea, grepul este sensibil la minuscule. Puteți folosi steagul "-i" pentru a ignora cazul.
De asemenea, puteți lua intrări din fișiere pentru comenzi utilizând simbolul mai puțin decât (<).
cat <lista
"Nu este altceva decât să folosiți un argument!", Ați putea spune. Ei bine, ai fi corect în acest caz. În cazul în care redirecționarea de intrare într-adevăr vine la îndemână este în lanț comenzi împreună.
Să presupunem că vrem să filtram orice cuvânt care are "pep" în el din fișierul nostru actual "list" într-un nou fișier numit "revizii".
grep pep revisions
Să reluăm această comandă și să adăugăm o sortare.
grep pep revisions
Aceasta va folosi termenul de căutare ca termen de căutare din "lista" fișierului de intrare, va sorta ordinea în ordine alfabetică (toți termenii de mai sus vor fi urmăriți de toți termenii de mai mică mărime), apoi îl veți înscrie în fișierul "revizii".
Pentru a ilustra comanda de sortare, să examinăm următorul exemplu:
După cum puteți vedea, adăugarea semnalului "-f" comenzii de sortare vă permite să ignorați cazul. Acest lucru ne face ușor să alfabetizăm liniile din fișierele text și să ignorăm scrierea cu majuscule atunci când nu contează.
Să creăm un script care are următoarea formă:
script searchterm listfile
Acesta va dura termenul și va utiliza grep pentru a căuta printr-un fișier listă, sortați rezultatele și apoi le exportați într-un alt fișier.
Iată directorul pe care îl vom testa scriptul în:
Și putem crea o listă a ceea ce este aici, apoi rulați scenariul.
Acolo te duci! Cu cat invata mai mult regulile expresiilor regulate, cu atat mai bine poti pune o comanda de cautare. Și orice lucru valabil în citate poate fi înlocuit de primul tău argument!
În ceea ce privește sortarea, puteți face mai mult decât să sortați în ordine alfabetică. Uitați-vă la pagina man pentru câteva din următoarele comenzi:
Am analizat astăzi câteva elemente de bază care pot fi la fel de utile pe linia de comandă ca și în scenariile. Datele bazate pe text sunt adesea în centrul lucrurilor pe care le folosim zilnic, astfel încât să putem lucra cu acestea, să le căutăm și să le manipulăm este esențială.
Care sunt câteva dintre scenariile dvs. preferate? Au script-uri de utilizare specială pentru fișierele bazate pe text? Distribuiți ceea ce știți în comentariile dvs.!