„Grep“: „Shell“ scenarijų mokymasis naudojant „Grep“ terminalo komandą

grep komanda

„Shell Scripting“ išmokimas naudojant terminalo komandą: grep

„Grep“ komanda tokiose laisvose operacinėse sistemose kaip GNU / Linux yra labai vertinga ir naudinga komanda. Jo pavadinimas kilęs iš frazės anglų kalba: „Visuotinis reguliariosios išraiškos spausdinimas“ ir jis naudojamas užduočiai surasti, suderinti ir rodyti paieškos modelį arba reguliarią vienos (1) ar kelių tekstinių failų išraišką.

Iš esmės komanda «grep» ieško komandos komandos parametruose nurodyto modelio ir atspausdina rezultatus, gautus vadovaujantis komandos komandos parametruose esančiomis nuorodomis., kuris gali būti: ekranas arba išvesties failas.

Įvadas į komandą „grep“

Jau kituose ankstesniuose to paties tinklaraščio leidiniuose, tokiuose kaip šis «Kai kurios pagrindinės komandos ...»Mes pakomentavome pagrindinį šios puikios komandos naudojimą, tačiau Šiame leidinyje pamatysime labiau „grep“ komandos naudojimą tarpiniu ir pažangiu funkcinių ir naudingų komandų komandomis, kurios gali palengvinti tam tikras realias užduotis. mūsų apvalkalo scenarijuose arba tiesiai ant terminalo, kad pasiektumėte greitesnį rezultatą atlikdami konkrečią užduotį.

Praktiniai pavyzdžiai

Peržiūrėkite mūsų padėtį / vietą

spausdinti dabartinio katalogo turinį naudojant grafinį katalogų medį:

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'

pavyzdys:

Grep: katalogas, panašus į medį

Sugeneruokite atsitiktinį 30 simbolių slaptažodį

Generuokite atsitiktines eilutes / dev / urandom viduje, tada pasirinkite ir pateikite vieną (1) naudodami filtrą naudodami komandą «grep» tik raidiniams ir skaitiniams simboliams su pirmųjų 30 simbolių dydžio sąlyga, pašalindami visus eilučių kanalus.

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

pavyzdys:

Grep: sugeneruoti slaptažodį

Sukurkite grafinę jungčių santrauką

Peržiūrėkite grafine forma (lentele) ir apibendrinkite vidinių ir išorinių tinklo ryšių skaičių, aptiktą priimančiosios komandos „netstat“ nurodytu laiku.

netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'

pavyzdys:

„Grep“: „Netstat“ ryšių grafikas

Jį taip pat galima naudoti norint sukurti jungčių skaičiaus pagal jų tipą suvestinę lentelę, kaip parodyta žemiau:

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

pavyzdys:

Grep: suvestinės lentelės su Netstat

Kelyje raskite eilutę (raštą)

Raskite ir pateikite visas šablono atitiktis failų pavadinimuose ar failų turinyje. Parametrai naudojami šiam tikslui pasiekti: -R (Pakatalogių pasikartojimas), -n (Rodyti atitikmenų eilutės numerius), -i (Nepaisyti didžiųjų ir mažųjų raidžių), -s (Užblokuoti 'neegzistuoja pranešimai "Ir" būti perskaitytam "), -I (Ignoruoti dvejetainius failus ieškant).

grep -RnisI  *

„Grep“: ieškokite šablonų failuose ir aplankuose

Jis taip pat gali būti naudojamas pažangesniu būdu, jei jis naudojamas komandų eilutėje su komanda „rasti“, kad surastų modelį iš anksto nustatytame failo tipe. kaip parodyta žemiau:

find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;

„Grep“: ieškokite šablonų failuose

Žinokite duomenų kiekį RAM atmintyje

Tai naudinga tiksliai žinoti, kiek duomenų (informacijos) laukia įrašymas į kietąjį diską, ir būtina priversti iš naujo paleisti arba išjungti kompiuterį.

grep ^Dirty /proc/meminfo

„Grep“: duomenys RAM atmintyje

Žinokite mūsų WAN IP adresą

Visada yra labai naudinga automatiškai sužinoti mūsų WAN IP iš terminalo ir tada perduoti šį parametrą kitai automatinei užduočiai. Šiame pavyzdyje jai gauti naudojama „DynDNS“ paslauga.

curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

Grepas: Žinok mūsų WAN IP

Išvardykite įrangą, prijungtą prie tinklo segmento

Naudodami „for“ kilpą su „ping“ komanda ir filtruodami rezultatą naudodami „grep“ komandą, galime patvirtinti savo kompiuterius, prijungtus prie tinklo su įjungta ping tarnyba, nereikia NMap įrankio.

for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done

pavyzdys:

Norėdami išvardyti atsekamo IP adreso lauką, galite labiau naudoti šią eilutę, filtruodami komandos „grep“ rezultatus naudodami komandas „awk“ ir „cut“, kaip parodyta žemiau:

for i in {100..110}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done | awk '{ print $4 }' | cut -d ":" -f 1

pavyzdys:

Grep: LAN IP sąrašas

Šie komandų eilutės, naudojant komandą grep, pavyzdžiai. Jie naudojami naudoti tiesiogiai iš konsolės arba netiesiogiai, įterpiant juos į scenarijų (automatinė užduotis).

Kitame „Shell Scripting“ įraše mes nagrinėsime kitas komandas.

Jei norite sužinoti šiek tiek daugiau apie komandą «grep», apsilankykite šioje nuorodoje «DEBIAN Wiki»Ir jei norite sužinoti daugiau apie„ Shell Scripting “mūsų pačių tinklaraštyje, galite peržiūrėti kitus mūsų leidinius šia tema, spustelėdami čia: Scenarijai „FromLinux“


Straipsnio turinys atitinka mūsų principus redakcijos etika. Norėdami pranešti apie klaidą, spustelėkite čia.

2 komentarai, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Leandro sakė

    Straipsnis puikus, labai ačiū.

  2.   „Linux Post Install“ sakė

    Sveiki, tai malonu! Dabar ateina vienas su komanda Sed.