Vodič za početnike za skriptiranje ljuski 3 Više osnovnih naredbi i lanaca
Naučili ste stvarati skripte, koristiti argumente i graditi za petlje. Pogledajmo sada neke osnovne naredbe, manipulaciju tekstualnim datotekama i preusmjeravanje ulaza i izlaza na datoteke i druge naredbe.
Neke osnovne korisne naredbe
Već smo vam dali osnovnu raščlambu skripti ljuske i pregled za petlje za primjer, ali svakako provjerite te članke ako ste propustili naš vodič za skripte.
Redak za naredbe je prekrasan iz više razloga, a preusmjeravanje je jedno od najistaknutijih. Ako ste morali zabilježiti i reproducirati izlaz svake naredbe kako biste poduzeli daljnje akcije ili to iskoristili za nešto drugo, onda bismo svi odavno poludjeli. Preusmjeravanje nam dopušta da koristimo taj izlaz i spremimo ga ili ga odmah upotrijebimo kao ulaz za drugu naredbu. Također možemo koristiti datoteke kao ulaze za druge naredbe.
Prije nego nastavimo, pokrivajmo neke osnovne naredbe koje mogu biti korisne na mnogo različitih mjesta.
jeka - Ova naredba jednostavno ispisuje (prikazuje) cjelinu svog argumenta u naredbenom retku kao izlaz
argument echo s razmacima
Kao što možete vidjeti, posebne znakove je potrebno "pobjeći" kako bi se njima normalno postupalo. To se radi pomoću obrnute kose crte (ispred znaka). Bolje je koristiti navodnike. Naredba echo također radi s varijablama.
Kao što možete vidjeti, jednostruki i dvostruki navodnici ponašaju se različito. Za više informacija, pogledajte Kakva je razlika između pojedinačnih i dvostrukih citata u Bash ljusci?
mačka - Ova naredba prikazuje sadržaj tekstualnih datoteka kao izlaz.
cat file_to_be_read
Recimo da smo stvorili ovu tekstualnu datoteku u nano:
Kada koristimo cat naredbu na datoteci, možemo vidjeti da je izlaz.
grep - Ovo je jedna od najmoćnijih i najkorisnijih naredbi koje su vam dostupne u Linuxu. To znači Global / Regular Expression Print. Pregledava datoteku i ispisuje bilo koju liniju koja odgovara određenom uzorku. Budući da se ovaj uzorak temelji na "regularnom izrazu", koncizna linija može dati mnoštvo uzoraka koje treba uskladiti. No, ne možete upisati čigru za pretraživanje.
grep pattern file
Uvjeravam vas, grep može učiniti više, ali zasad se držimo lakših stvari.
Preusmjeravanje izlaza
Za preusmjeravanje izlaza naredbe u datoteku koristimo poseban znak, simbol veći-od (>).
Promijenimo popis, hoćemo li? Unesite sljedeću naredbu:
echo pepperoni> popis
Vidite da eho više ne prikazuje liniju, a kad pogledamo sadržaj datoteke s popisom, vidimo što smo odjekivali tamo.
Također imajte na umu da su prethodni sadržaji "popisa" uklonjeni. Pokušaj ponovno:
To može biti korisno kada želite ponovno koristiti datoteku, ali često samo želimo dodati postojeću datoteku. U tu svrhu koristimo dva uzastopna simbola veći od:
echo yellow peppers >> popis
Lako! Koristimo ovu naredbu za stvaranje većeg popisa?
Idemo tamo. Mislim da možete vidjeti zašto toliki geekovi koriste naredbeni redak za izradu popisa obveza i slično, ali još bolje.
Uzmimo izlaz naredbe i stavimo je u datoteku:
ls-al /> ~ / rootlist
Izrada popisa datoteka, njihovo uređivanje i pokretanje naredbi na onima koje želite nikada nije bilo jednostavnije. I dok radimo ove osnovne funkcije u naredbenom retku, one također dobro funkcioniraju u skriptama.
Cjevovodi ili ulančavanje
Piping je tako nazvan jer koristi cijev, (|; dijeli se s ključem na većini tipkovnica). U osnovi, on uzima izlaz jedne naredbe i izravno je šalje drugoj. Možete stvoriti duge lance naredbi da biste na ovaj način dobili vrlo specifičan željeni izlaz, a to je vrlo prikladno za naredbe kao što je grep.
Djeluje poput ">", osim što se može lančano povezati više puta i njegov učinak je općenitiji u tome što ne mora prolaziti kroz tekstualnu datoteku.
Kao što možete vidjeti, grep je osjetljiv na velika i mala slova. Možete upotrijebiti zastavicu "-i" da biste je ignorirali.
Preusmjeravanje ulaza
Također možete uzeti ulaze iz datoteka za naredbe pomoću simbola manjeg od (<).
mačka < list
"To se ne razlikuje od korištenja argumenta!" Moglo bi se reći. Pa, bio bi u pravu u ovom slučaju. Tamo gdje je preusmjeravanje unosa stvarno korisno u spajanju naredbi zajedno.
Recimo da želimo filtrirati bilo koju riječ koja u njoj ima "pep" iz naše trenutne datoteke "list" u novu datoteku pod nazivom "revizije".
grep pep revizije
Ponovimo ovu naredbu i dodamo malo sortiranja.
grep pep revizije
To će koristiti "pep" kao pojam za pretraživanje iz "popisa" ulazne datoteke, sortirati ga po abecednom redu (svi izrazi velikih slova slijede sve male riječi), a zatim ga ispisati u datoteku "revisions".
Za ilustraciju naredbe sortiranja, pogledajmo sljedeći primjer:
Kao što možete vidjeti, dodavanjem zastavice "-f" u naredbu sortiranje možete zanemariti slučaj. To nam olakšava da alfabetiziramo linije u tekstualnim datotekama i zanemarimo velika slova kada to nije važno.
Jednostavan skript
Kreiramo skriptu koja ima sljedeći oblik:
popis traženja popisa skripti
Trajat će pojam i koristiti grep za pretraživanje datoteke popisa, sortiranje rezultata, a zatim će ih ispisati u drugu datoteku.
Ovo je direktorij koji ćemo testirati u:
I možemo napraviti popis onoga što je ovdje, a zatim pokrenuti skriptu.
Izvoli! Što više naučite pravila regularnih izraza, točnije možete sastaviti naredbu za pretraživanje. I sve što vrijedi u navodnicima može zamijeniti vaš prvi argument!
Što se tiče sortiranja, možete napraviti više nego samo abecednim redoslijedom. Pogledajte man stranicu za neke od sljedećih naredbi:
- tsort - naprednija funkcija topološkog razvrstavanja
- tr - omogućuje mapiranje određenih znakova u druge znakove i prepisivanje između njih.
- uniq - uklanja sve ne-jedinstvene (pročitajte: duplikat)
- awk - stvarno napredan jezik / funkcija za obradu teksta koja se može koristiti za razdvajanje polja u nazivima datoteka
- cut, paste / join - naredbe korisne za izoliranje polja iz tekstualnih datoteka i dodavanje novih podataka u stupce
- look - pretražuje kao što grep radi, ali koristi datoteku rječnika (koju može odrediti korisnik) za pretraživanje
- wc - omogućuje izračunavanje broja riječi, broj linija, broj znakova i još mnogo toga
Danas smo pogledali još neke osnove koje mogu biti korisne u naredbenom retku kao u skriptama. Podaci koji se temelje na tekstu često su u središtu stvari koje svakodnevno koristimo, tako da ste u mogućnosti raditi s njim, pretraživati ih i upravljati njime ključno.
Koje su vaše omiljene skripte? Imate li neke posebne skripte za tekstualne datoteke? Podijelite ono što znate u komentarima!