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

grep naredba

Učenje skriptiranja 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 u parametrima 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 srednju i napredniju upotrebu naredbe "grep" unutar funkcionalnih i korisnih naredbi koje mogu olakšati određene stvarne zadatke. unutar naših skripti ljuske ili izravno na terminalu kako bismo postigli neposredniji rezultat na određenom zadatku koji treba izvršiti.

Praktični primjeri

Pogledajte naš položaj / lokaciju

otisak 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 poput stabla

Generirajte slučajnu lozinku duljine 30 znakova

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

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 unutarnjih i vanjskih mrežnih veza koje je detektirala naredba "netstat" hosta u određenom 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 u nastavku:

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

primjer:

Grep: Tablice sažetka s Netstatom

Pronađite niz (uzorak) unutar putanje

Pronađite i prikažite sva podudaranja uzorka u imenima datoteka ili sadržaju datoteke. Korištenje parametara za postizanje ovoga su: -R (Ponavljanje za poddirektorijume), -n (Prikaži brojeve redova podudaranja), -i (Zanemari velika i mala slova), -s (Potisni 'ne postoje poruke "I" ne može se čitati "), -I (Zanemari binarne datoteke u pretraživanju).

grep -RnisI  *

Grep: Potražite uzorke u datotekama i mapama

Također se može koristiti na napredniji način ako se koristi u naredbenom retku s naredbom "pronađi" za pronalaženje uzorka unutar unaprijed definirane vrste datoteke. kao što je prikazano niže:

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 točno koliko podataka (informacija) čeka na upis na tvrdi disk i potrebno je prisiliti ponovno pokretanje ili isključivanje računala.

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: Upoznajte naš WAN IP

Navedite opremu povezanu s mrežnim segmentom

Korištenjem for petlje s naredbom "ping" i filtriranjem rezultata pomoću naredbe "grep" možemo provjeriti valjanost računala koja su povezana 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 ovaj redak, 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: Popis IP-a za LAN

Ovi primjeri naredbenih redaka pomoću naredbe grep. A koriste se za upotrebu izravno s konzole ili neizravno 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 u FromLinuxu