Kommandoen "grep" i gratis operativsystemer som GNU / Linux er en veldig verdifull og nyttig kommando. Navnet kommer fra uttrykket på engelsk: «Global Regular Expression Print» og det brukes til å utføre oppgaven med å finne, matche og vise et søkemønster eller et regulært uttrykk for en (1) fil eller flere tekstfiler.
I utgangspunktet søker «grep» -kommandoen etter mønsteret som er angitt i parameterne for kommandokommandoen, og skriver ut resultatene som er oppnådd etter indikasjonene på kommandokommandoparametrene., som kan være: skjermen eller en utdatafil.
Introduksjon til "grep" -kommandoen
Allerede i andre tidligere publikasjoner av samme blogg, som denne «Noen grunnleggende kommandoer på ...»Vi har diskutert den grunnleggende bruken av denne flotte kommandoen, men I denne publikasjonen vil vi se en mer middels og avansert bruk av "grep" -kommandoen innenfor funksjonelle og nyttige kommandokommandoer som kan lette visse virkelige oppgaver. innenfor skallskriptene våre eller direkte på terminalen for å oppnå et mer umiddelbart resultat på en bestemt oppgave som skal utføres.
Praktiske eksempler
Se vår posisjon / beliggenhet
print innholdet i vår nåværende katalog ved hjelp av et grafisk katalogtrær:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
Eksempel:
Generer et tilfeldig passord på 30 tegn
Generer tilfeldige strenger inne / dev / urandom og velg og vis en enkelt (1) ved hjelp av en filtrering med «grep» -kommandoen for bare alfanumeriske tegn, med tilstanden til størrelsen på de første 30 tegnene, og eliminerer alle linjematingene. .
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
Eksempel:
Generer et grafisk sammendrag av tilkoblinger
Visualiser i en grafisk (tabell) og oppsummert form av antallet interne og eksterne nettverkstilkoblinger oppdaget av "netstat" -kommandoen til en vert i et gitt øyeblikk.
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 "" }'
Eksempel:
Den kan også brukes til å generere en sammendragstabell over antall tilkoblinger etter type, som vist nedenfor:
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
Eksempel:
Finn en streng (mønster) innenfor en bane
Finn og vis alle treff i et mønster i filnavn eller filinnhold. Bruk av parametere for å oppnå dette er: -R (Gjentakelse for underkataloger), -n (Vis linjenummer på treff), -i (Ignorer store og små bokstaver), -s (Undertrykk 'eksisterer ikke meldinger "Og" kan ikke leses "), -I (Ignorer binærfiler i søk).
grep -RnisI *
Den kan også brukes på en mer avansert måte hvis den brukes i en ledetekst med "finn" -kommandoen for å finne et mønster innenfor en forhåndsdefinert filtype. som vist under:
find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;
Kjenn til datamengden i RAM-minnet
Dette er nyttig for å vite nøyaktig hvor mye data (informasjon) som venter på å bli skrevet til harddisken, og det er nødvendig å tvinge en omstart eller avslutning av en datamaskin.
grep ^Dirty /proc/meminfo
Kjenn vår WAN IP-adresse
Det er alltid veldig nyttig å kjenne til WAN-IP-en vår automatisk fra terminalen og deretter sende den parameteren til en annen automatisert oppgave. Dette eksemplet bruker DynDNS-tjenesten for å skaffe den.
curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"
Liste utstyret som er koblet til et nettverkssegment
Ved å bruke en for-loop med "ping" -kommandoen og filtrere resultatet med "grep" -kommandoen, kan vi validere datamaskinene våre som er koblet til nettverket med pingtjenesten aktivert uten behov for NMap-verktøyet.
for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done
Eksempel:
For å liste opp det sporede IP-adressefeltet, kan du bruke denne linjen mer avansert ved å filtrere resultatene av "grep" -kommandoen ved hjelp av kommandoene "awk" og "cut", som vist nedenfor:
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
Eksempel:
Disse eksemplene på kommandolinjer ved hjelp av grep-kommandoen. Og de kan brukes til å brukes direkte fra konsollen eller indirekte ved å sette dem inn i et skript (automatisert oppgave).
I neste innlegg på Shell Scripting vil vi utforske andre kommandoer.
Hvis du vil lære litt mer om «grep» -kommandoen, kan du gå til denne lenken «DEBIAN Wiki»Og hvis du vil lære mer om Shell Scripting i vår egen blogg, kan du se på de andre publikasjonene våre om emnet, ved å klikke her: Skripting DesdeLinux
Artikkelen er flott, tusen takk.
Du er velkommen, det er en glede! Nå kommer en med kommandoen Sed.