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:
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:
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:
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:
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 *
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" {} \;
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
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:].]\+"
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:
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
Članak je sjajan, puno vam hvala.
Nema na čemu, zadovoljstvo je! Sada dolazi jedan sa naredbom Sed.