Navodila za začetnike za skriptiranje Shell 3 Več osnovnih ukazov in verig
Naučili ste se ustvarjati skripte, uporabljati argumente in graditi za zanke. Zdaj pa si poglejmo nekaj osnovnih ukazov, manipulacijo z besedilno datoteko in preusmerimo vhodne in izhodne podatke v datoteke in druge ukaze..
Nekaj osnovnih ukazov
Že smo vam dali osnovno razčlenitev skriptov lupine in oris za zanke, ki temeljijo na zgledu, vendar ne pozabite preveriti teh člankov, če ste zamudili naš doslej voden skriptni skript.
Ukazna vrstica je zaradi mnogih razlogov čudovita, preusmeritev pa je ena najbolj prepoznavnih. Če bi si morali zapomniti in reproducirati izpis vsakega ukaza, da bi sprejeli nadaljnje ukrepe ali uporabili to za nekaj drugega, bi vsi že zdavnaj postali nor. Preusmeritev nam omogoča, da uporabimo ta izhod in ga shranimo ali ga takoj uporabimo kot vhod za drug ukaz. Datoteke lahko uporabimo tudi kot vnose za druge ukaze.
Preden nadaljujemo, pokrijemo nekaj osnovnih ukazov, ki jih lahko uporabimo na številnih različnih mestih.
odmev - Ta ukaz preprosto natisne (prikaže) celoten argument v ukazni vrstici kot izhod
argument echo z presledki
Kot lahko vidite, je treba posebne znake »pobegniti«, da se jih obravnava normalno. To naredite tako, da uporabite poševnico nazaj (\ t Bolje je uporabiti narekovaje. Ukaz echo deluje tudi s spremenljivkami.
Kot lahko vidite, se enojni in dvojni narekovaji obnašata drugače. Za več informacij si oglejte Razlike med enotnimi in dvojnimi citati v Bash Shell-u?
mačka - Ta ukaz prikaže vsebino besedilnih datotek kot izhod.
cat file_to_be_read
Recimo, da ustvarjamo to besedilno datoteko v nano:
Ko v datoteki uporabimo ukaz cat, lahko vidimo njegov izhod.
grep - To je eden izmed najmočnejših in najbolj uporabnih ukazov, ki so vam na voljo v Linuxu. To pomeni Global / Regular Expression Print. Ogleda datoteko in natisne vsako vrstico, ki ustreza določenemu vzorcu. Ker ta vzorec temelji na »regularnem izrazu«, lahko zgoščena linija ustvari številne vzorce, ki jih je treba ujemati. Za ne, lahko vnesete čigro za iskanje.
datoteka vzorca grep
Zagotavljam vam, da grep lahko naredi več, toda za zdaj se držimo lažjih stvari.
Preusmerjanje izhodov
Če želite preusmeriti izhodni ukaz v datoteko, uporabimo poseben znak, simbol večjega od (>).
Spremenimo naš seznam, kajne? Vnesite naslednji ukaz:
echo pepperoni> seznam
Vidite lahko, da odmev ni več prikazan, in ko pogledamo vsebino datoteke s seznamom, vidimo, kaj smo odzvali tam.
Upoštevajte tudi, da je bila prejšnja vsebina seznama odstranjena. Poskusite znova:
To je lahko uporabno, če želite ponovno uporabiti datoteko, vendar pogosto želimo dodati obstoječo datoteko. Za to uporabljamo dva zaporedna simbola večje od:
echo rumena paprika >> seznam
Enostavno! Uporabimo ta ukaz za ustvarjanje večjega seznama?
No pa gremo. Mislim, da lahko vidite, zakaj tako veliko geeksov uporablja ukazno vrstico za izdelavo seznamov opravil in podobno, vendar je še boljši.
Vzemimo izhodni ukaz in ga postavimo v datoteko:
ls -al /> ~ / rootlist
Izdelava seznamov datotek, njihovo urejanje in izvajanje ukazov na želenih datotekah še nikoli ni bilo enostavnejše. In medtem, ko delamo te osnovne funkcije v ukazni vrstici, delujejo dobro tudi v skriptih.
Piping ali Chaining
Piping je tako poimenovan, ker uporablja cev, (|; je v skupni rabi s ključem na večini tipkovnic). V bistvu vzame izhod enega ukaza in ga neposredno posreduje drugemu. Lahko ustvarite dolge verige ukazov, da dobite zelo specifičen želeni rezultat na ta način, in je zelo priročen za ukaze, kot je grep.
Deluje zelo podobno kot »>«, razen da se lahko veže večkrat in njen učinek je bolj splošen, ker ni treba preiti skozi besedilno datoteko.
Kot lahko vidite, grep razlikuje med velikimi in malimi črkami. Če želite prezreti primer, lahko uporabite oznako »-i«.
Preusmerjanje vhodov
Prav tako lahko uporabite vnose iz datotek za ukaze s simbolom manj kot (<).
mačka < list
"To se ne razlikuje od argumenta!" Bi lahko rekli. No, v tem primeru bi bila pravilna. Kjer je preusmeritev vnosa resnično priročna, je to povezovanje ukazov skupaj.
Recimo, da želimo filtrirati vsako besedo, ki ima v njej »pep« iz trenutne datoteke s seznamom, v novo datoteko, imenovano »revizije«.
grep pep revizije
Znova ukažimo ta ukaz in dodamo nekaj razvrščanja.
grep pep revizije
To bo uporabilo "pep" kot iskalni izraz iz "seznama" vhodne datoteke, ga razvrstilo po abecednem vrstnem redu (vsi izrazi velikega sloja, ki jim sledijo vsi izrazi z malimi črkami), nato pa ga vnesli v datoteko "revizije".
Za ponazoritev ukaza sortiranja si poglejmo naslednji primer:
Kot lahko vidite, dodajanje zastavice -f za ukaz razvrščanja vam omogoča, da prezrete primer. To nam olajša abecedno razvrščanje vrstic v besedilnih datotekah in ignoriranje velikih začetnic, ko to ni pomembno.
Preprost skript
Ustvarimo skript, ki ima naslednjo obliko:
skript iskalnik seznam
Trajalo bo izraz in uporabilo grep za iskanje po seznamski datoteki, razvrščanje rezultatov in nato v drugo datoteko.
Tukaj je imenik, ki ga bomo preizkusili v:
In lahko ustvarimo seznam tega, kar je tukaj, nato zaženemo skript.
Izvolite! Bolj ko se učite pravil pravilnih izrazov, bolj natančno lahko sestavite ukaz za iskanje. In vse, kar je veljavno v narekovajih, lahko nadomesti vaš prvi argument!
Kar zadeva razvrščanje, lahko naredite več kot samo razvrščanje po abecedi. Oglejte si stran man za nekatere od naslednjih ukazov:
- tsort - naprednejša topološka sortirna funkcija
- tr - omogoča preslikavo določenih znakov v druge znake in prepisovanje med njimi.
- uniq - odstrani vse ne-edinstvene (prebrane: podvojene)
- awk - res napreden jezik / funkcija za obdelavo besedila, ki se lahko uporablja za ločevanje polj v datotekah
- cut, paste / join - ukazi, ki so uporabni za izoliranje polj iz besedilnih datotek in dodajanje novih podatkov v stolpce
- look - išče kot grep, vendar uporablja slovar (ki ga lahko določi uporabnik) za iskanje
- wc - omogoča, da dobite število besed, štetje vrstic, število znakov in še več
Danes smo si ogledali še nekaj osnov, ki so lahko tako uporabne v ukazni vrstici kot v skriptih. Podatki, ki temeljijo na besedilu, so pogosto v središču stvari, ki jih vsak dan uporabljamo, zato je to, da lahko delamo z njim, iščemo in manipuliramo z njim, ključno.
Katere so vaše najljubše skripte? Imate kakšne posebne skripte za besedilne datoteke? Delite, kar veste v komentarjih!