Grep: Učenje skripti ljuske pomoću naredbe Grep terminala

grep naredba

Učenje skripti ljuske pomoću naredbe terminala: grep

Naredba "grep" u besplatnim operativnim sustavima kao što je GNU / Linux vrlo je vrijedna i korisna naredba. Ime mu dolazi od fraze na engleskom: «Global Regular Expression Print» i koristi se za izvršavanje zadatka pronalaženja, podudaranja i prikazivanja uzorka pretraživanja ili regularnog izraza jedne (1) datoteke ili nekoliko tekstualnih datoteka.

U osnovi, naredba «grep» traži obrazac naznačen u parametrima naredbe naredbe i ispisuje rezultate dobivene slijedeći naznake parametara naredbe naredbe., što može biti: zaslon ili izlazna datoteka.

Uvod u naredbu "grep"

Već u drugim prethodnim publikacijama istog bloga, poput ove «Neke osnovne naredbe o ...»Komentirali smo osnovnu upotrebu ove velike zapovijedi, ali U ovoj publikaciji vidjet ćemo posredniju i napredniju upotrebu naredbe "grep" unutar funkcionalnih i korisnih naredbi naredbi koje mogu olakšati određene stvarne zadatke. unutar naših skripti ljuske ili direktno na terminalu kako bismo postigli neposredniji rezultat na određenom zadatku koji treba izvršiti.

Praktični primjeri

Pogledajte našu poziciju / lokaciju

štampa sadržaj našeg trenutnog direktorija pomoću grafičkog stabla direktorija:

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

Primjer:

Grep: Direktorij sličan stablu

Generirajte slučajnu lozinku dužine 30 znakova

Generirajte slučajne nizove unutar / dev / urandom, a zatim odaberite i prikažite jedan (1) koristeći filtriranje pomoću naredbe «grep» samo za alfanumeričke znakove, uz uvjet veličine prvih 30 znakova, uklanjajući sve feedove redaka .

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

Primjer:

Grep: Generiraj lozinku

Generirajte grafički sažetak veza

Vizualizirajte u grafičkom (tabličnom) i sažetom obliku broj internih i eksternih mrežnih veza koje je detektirala naredba "netstat" hosta u datom trenutku.

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 "" }'

Primjer:

Grep: Grafikon Netstat veza

Također se može koristiti za generiranje tablice sažetka broja veza prema njihovom tipu, kao što je prikazano dolje:

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

Primjer:

Grep: Tablice sažetka sa Netstatom

Pronađite niz (uzorak) unutar putanje

Pronađite i prikažite sva podudaranja uzorka u imenima datoteka ili sadržaju datoteke. Upotreba parametara za postizanje ovog su: -R (Ponavljanje za poddirektorijume), -n (Prikaži brojeve redova podudaranja), -i (Zanemari velika i mala slova), -s (Potisni 'ne postoji poruka "I" ne može čita se "), -I (Zanemari binarne datoteke u pretrazi).

grep -RnisI  *

Grep: Potražite uzorke u datotekama i mapama

Može se koristiti i na napredniji način ako se koristi u naredbenom retku s naredbom "pronađi" za lociranje uzorka unutar unaprijed definiranog tipa datoteke. kao što je prikazano ispod:

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

Grep: Potražite uzorke u datotekama

Znati količinu podataka u RAM memoriji

Ovo je korisno znati tačno koliko podataka (informacija) čeka na upis na tvrdi disk i potrebno je prisiliti ponovno pokretanje ili isključivanje računara.

grep ^Dirty /proc/meminfo

Grep: Podaci u RAM-u

Znajte našu WAN IP adresu

Uvijek je vrlo korisno znati naš WAN IP automatski s terminala, a zatim proslijediti taj parametar drugom automatiziranom zadatku. Ovaj primjer koristi uslugu DynDNS da bi je dobio.

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

Grep: Znajte naš WAN IP

Navedite opremu povezanu na mrežni segment

Korištenjem for petlje s naredbom "ping" i filtriranjem rezultata pomoću naredbe "grep" možemo provjeriti valjanost računara povezanih na mrežu s omogućenom uslugom ping bez potrebe za alatom NMap.

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

Primjer:

Za popis praćenog polja IP adrese možete naprednije koristiti ovu liniju, filtrirajući rezultate naredbe "grep" pomoću naredbi "awk" i "cut", kao što je prikazano dolje:

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

Primjer:

Grep: LAN IP popis

Ovi primjeri naredbenih linija pomoću grep naredbe. A služe za upotrebu izravno s konzole ili indirektno umetanjem u skriptu (automatizirani zadatak).

U sljedećem postu o Shell Scriptingu istražit ćemo druge naredbe.

Ako želite saznati nešto više o naredbi «grep», posjetite ovaj link «DEBIAN Wiki»A ako želite saznati više o Shell skriptiranju na našem vlastitom blogu, možete pogledati naše ostale publikacije na tu temu, klikom ovdje: Skriptiranje DesdeLinux


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Leandro rekao je

    Članak je sjajan, puno vam hvala.

  2.   Linux nakon instalacije rekao je

    Nema na čemu, zadovoljstvo je! Sada dolazi jedan sa naredbom Sed.