Kommandoen "grep" i gratis operativsystemer som GNU / Linux er en meget værdifuld og nyttig kommando. Navnet stammer fra sætningen på engelsk: «Global Regular Expression Print», og det bruges til at udføre opgaven med at finde, matche og vise et søgemønster eller et regulært udtryk for en (1) fil eller flere tekstfiler.
Grundlæggende søger kommandoen «grep» efter det mønster, der er angivet i parametrene for kommandokommandoen, og udskriver de opnåede resultater efter indikationerne i parametrene for kommandokommandoen, hvilket kan være: skærmen eller en outputfil.
Introduktion til kommandoen "grep"
Allerede i andre tidligere publikationer på den samme blog, som denne «Nogle grundlæggende kommandoer på ...»Vi har drøftet den grundlæggende brug af denne store kommando, men I denne publikation vil vi se en mere mellemliggende og avanceret brug af kommandoen "grep" inden for funktionelle og nyttige kommandokommandoer, der kan lette visse reelle opgaver. inden for vores shell-scripts eller direkte på terminalen for at opnå et mere øjeblikkeligt resultat på en bestemt opgave, der skal udføres.
Praktiske eksempler
Se vores position / placering
print indholdet af vores nuværende bibliotek ved hjælp af et grafisk katalogtræ:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
Eksempel:
Generer en tilfældig adgangskode på 30 tegn
Generer tilfældige strenge inde i / dev / urandom, og vælg og vis derefter en enkelt (1) ved hjælp af filtrering med kommandoen «grep» til kun alfanumeriske tegn med betingelsen for størrelsen på de første 30 tegn, hvilket eliminerer alle linjefeeds .
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
Eksempel:
Generer en grafisk oversigt over forbindelser
Se grafisk (tabel) og opsummer det antal interne og eksterne netværksforbindelser, der detekteres af kommandoen "netstat" fra en vært til enhver tid.
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:
Det kan også bruges til at generere en oversigtstabel over antallet af forbindelser efter type af dem, som vist nedenfor:
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
Eksempel:
Find en streng (mønster) inden for en sti
Find og vis alle match i et mønster i filnavne eller filindhold. Brug af parametre for at opnå dette er: -R (gentagelse for underkataloger), -n (Vis linjenumre for matches), -i (Ignorer store og små bogstaver), -s (Undertryk 'findes ikke' meddelelser "Og" kan ikke læses "), -I (Ignorer binære filer i søgning).
grep -RnisI *
Det kan også bruges på en mere avanceret måde, hvis det bruges inden for en kommandoprompt med "find" -kommandoen til at finde et mønster inden for en foruddefineret filtype. som vist nedenfor:
find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;
Kend mængden af data i RAM-hukommelse
Dette er nyttigt for at vide nøjagtigt, hvor meget data (information) der venter på at blive skrevet til harddisken, og det er nødvendigt at tvinge en genstart eller nedlukning af en computer.
grep ^Dirty /proc/meminfo
Kend vores WAN IP-adresse
Det er altid meget nyttigt at kende vores WAN IP automatisk fra terminalen og derefter overføre denne parameter til en anden automatiseret opgave. Dette eksempel gør brug af DynDNS-tjenesten til at opnå den.
curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"
Angiv udstyret, der er tilsluttet et netværkssegment
Ved hjælp af en for-loop med kommandoen "ping" og filtrering af resultatet med kommandoen "grep" kan vi validere vores computere, der er tilsluttet netværket med pingtjenesten aktiveret uden behov for NMap-værktøjet.
for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done
Eksempel:
For at liste det sporede IP-adressefelt kan du gøre mere avanceret brug af denne linje ved at filtrere resultaterne af kommandoen «grep» ved hjælp af kommandoerne «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 eksempler på kommandolinjer ved hjælp af kommandoen grep. Og de bruges til at blive brugt direkte fra konsollen eller indirekte ved at indsætte dem i et script (automatiseret opgave).
I det næste indlæg på Shell Scripting vil vi udforske andre kommandoer.
Hvis du vil lære lidt mere om kommandoen «grep», kan du besøge dette link «DEBIAN Wiki»Og hvis du vil lære mere om Shell Scripting i vores egen blog, kan du se på vores andre publikationer om emnet ved at klikke her: Scripting DesdeLinux
Artiklen er fantastisk, meget tak.
Du er velkommen, det er en fornøjelse! Nu kommer en med kommandoen Sed.