27Jun

Začetniški vodnik za skriptno skripto 3: več osnovnih ukazov &Verige

Naučili ste se, kako ustvariti skripte, uporabiti argumente in zgraditi zanke. Zdaj pa si oglejmo še nekaj osnovnih ukazov, manipulacijo besedilne datoteke in preusmerjanje vhoda in izhoda v datoteke in druge ukaze.

Nekateri osnovni uporabni ukazi

Že prej smo vam dali osnovno razčlenitev skriptov lupine in nazorno zasnovo za zanke, vendar se prepričajte, da preverite te članke, če ste doslej zamudili naš vodnik za skriptni vodič.

Komandna linija je čudovita zaradi številnih razlogov, preusmeritev pa je ena od najpomembnejših.Če bi morali narediti opombo in reproducirati izhod vsakega ukaza, da bi lahko ukrepali ali ga uporabili za nekaj drugega, potem smo vsi že dolgo odšli nori. Preusmeritev omogoča uporabo tega izhoda in ga shranimo ali takoj uporabimo kot vhod za drug ukaz. Datoteke lahko uporabimo tudi kot vhodne podatke za druge ukaze.

Preden nadaljujemo, pokrijemo nekaj osnovnih ukazov, ki se lahko uporabljajo na številnih različnih mestih.

echo - Ta ukaz preprosto natisne( prikaže) celoten njen argument v ukazni vrstici kot izhod

echo argument s presledki

Kot lahko vidite, je treba posebne znake "uničiti", tako da se obravnavajo normalno. To naredite tako, da uporabite poševnico( \) pred znakom. Bolje je, da uporabite narekovaje. Ukaz echo deluje tudi s spremenljivkami.

Kot vidite, se enojni in dvojni nareki obnašajo drugače.Če želite več informacij, preverite, kakšna je razlika med enojnim in dvojnim citatom v bašni školjki?

mačka - Ta ukaz prikaže vsebino besedilnih datotek kot izhod.

mačka file_to_be_read

Denimo, da smo ustvarili to besedilno datoteko v nano:

Ko v datoteki uporabljamo ukaz cat, lahko vidimo, da je izhod.

grep - To je eden najmočnejših in uporabnih ukazov, ki so vam na voljo v Linuxu. Gre za oznako Global / Regular Expression Print. Pogled skozi datoteko in natisne vsako vrstico, ki ustreza določenemu vzorcu. Ker ta vzorec temelji na "regularnem izrazu", lahko zgoščena linija prinese več vzorcev, ki jih je treba ujemati.Čeprav ne, lahko vnesete krmo za iskanje.

grep vzorec datoteke

Zagotavljam vam, da lahko grep naredi več, zdaj pa se držimo lažjih stvari.

Preusmeritev izhodov

Če želite preusmeriti izhod ukaza v datoteko, uporabimo poseben znak, simbol z več kot( & gt;).

Spremenimo naš seznam, ali bomo? Vnesite naslednji ukaz:

echo pepperoni & gt;seznam

Vidite, da odmev ne prikazuje več vrstice in ko pogledamo vsebino datoteke »seznam«, vidimo, kaj smo oddajali 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 samo želimo dodati obstoječi datoteki. Za to uporabljamo dva zaporedna simbola, večja od:

echo yellow peppers & gt; & gt;seznam

Enostavno! Uporabimo ta ukaz, da ustvarimo večji seznam, ali bomo?

Gremo. Mislim, da lahko vidite, zakaj tako veliko geeksov uporablja ukazno vrstico za opravljanje seznama opravil in podobno, vendar postane še boljše.

Spustimo izhod iz ukaza in ga vstavimo v datoteko:

ls -al / & gt;~ / root listina

Izdelava seznamov datotek, njihovo urejanje in izvajanje ukazov na tistih, ki jih želite, še nikoli ni bilo enostavnejše. Medtem ko delamo te osnovne funkcije v ukazni vrstici, ti delujejo tudi v skriptah.

Piping ali veriženje

Piping je tako imenovan, ker uporablja cev,( |; deli s tipko \ na večini tipkovnic).V bistvu potrebuje izhod enega ukaza in ga neposredno prenese na drugo. Lahko ustvarite dolge verige ukazov, da dobite zelo specifičen želeni izhod na ta način in je zelo priročen za ukaze, kot je grep.

Deluje veliko kot "& gt;", le da se lahko veže večkrat in njegov učinek je bolj splošen, ker ni treba iti skozi besedilno datoteko.

Kot vidite, je grep občutljiv na velike črke. Lahko uporabite zastavico »-i«, da ignorira primer.

Preusmeritev vhodov

Vložke iz datotek za ukaze lahko uporabite tudi z uporabo simbola manj kot( & lt;).

cat & lt;seznam

"To se ne razlikuje od uporabe argumenta!", Ste morda rekli. V tem primeru bi bil pravilen. Kjer preusmeritev vnosa res prihaja v priročno, je v verigi ukazov skupaj.

Recimo, da želimo filtrirati katero koli besedo, ki ima "pep" v njej iz naše trenutne datoteke s seznamom v novo datoteko, imenovano "revizije".

grep pep & lt;seznam & gt;revizije

Ponovimo ta ukaz in dodamo nekaj razvrščanja.

grep pep & lt;seznam |razvrščanje & gt;revizije

To bo uporabilo "pep" kot iskalni izraz iz vhodne datoteke "seznam", ga razvrstite po abecednem vrstnem redu( vsi zgornji primeri, ki mu sledijo vsi nižji primeri), nato pa jih spustite v datoteko "revizije".

Za ponazoritev ukaza za razvrščanje si oglejte naslednji primer:

Kot lahko vidite, dodajanje zastavice "-f" v ukaz za razvrščanje omogoča, da prezrete zadevo. To nam olajša abecede vrstic v besedilnih datotekah in ignorira kapitalizacijo, če ni pomembno.

Preprost skript

Ustvarimo skript, ki ima naslednjo obliko:

script searchterm listfile

Izraz bo uporabljen in grep bo poiskal datoteko s seznamom, razvrstil rezultate in jih nato prenašal v drugo datoteko.

Tukaj je imenik, v katerem bomo preizkusili skript v:

In lahko ustvarimo seznam tega, kar je tukaj, nato pa zaženite skript.

Tukaj greste! Bolj ko se naučite pravil za regularne izraze, bolj natančno lahko sestavite iskalni ukaz. In vse, kar velja v narekovajih, lahko nadomestite s svojim prvim argumentom!

Kar zadeva razvrščanje, lahko storite več kot le razvrščanje po abecedi. Oglejte si stran človeka za nekatere od naslednjih ukazov:

  • tsort - naprednejša topološka sortirna funkcija
  • tr - omogoča mapiranje določenih znakov drugim znakovam in prepis med njimi.
  • uniq - odstrani vse ne-edinstvene( read: duplicate)
  • awk - res napreden jezik za obdelavo besedila, ki se lahko uporablja za ločevanje polj v imenskih datotekah
  • cut, paste / join - ukazi, uporabni za izoliranje polj iz besedilnih datotek in dodajanjenovi podatki v stolpce
  • look - iskanja, kot je grep, vendar uporablja slovar datoteko( ki jo lahko določi uporabnik) za iskanje
  • wc - omogoča, da dobite število besed, število vrstic, število znakov in več

na še nekaj osnovnih danes, ki so lahko tako uporabne v ukazni vrstici kot v skriptah. Besedilni podatki so pogosto v središču stvari, ki jih dnevno uporabljamo, zato je ključnega pomena, da lahko delate z njo, jo iščete in manipulirate.

Kateri so vaši najljubši skripti? Imate katere posebne skripte za tekstovne datoteke? Delite tisto, kar veste v komentarjih!