"Grep" -komento vapaissa käyttöjärjestelmissä, kuten GNU / Linux, on erittäin arvokas ja hyödyllinen komento. Sen nimi tulee englanninkielisestä lauseesta: «Global Regular Expression Print», ja sitä käytetään tehtävän löytämiseen, etsimiseen tai yhden (1) tiedoston tai useiden tekstitiedostojen säännöllisen lausekkeen hakukuvion tai säännöllisen lausekkeen näyttämiseen.
Pohjimmiltaan komento «grep» etsii komentokomennon parametreissa ilmoitettua mallia ja tulostaa tulokset, jotka on saatu seuraamalla komentokomennon parametrien merkintöjä, joka voi olla: näyttö tai tulostetiedosto.
Johdanto "grep" -komentoon
Jo muissa saman blogin aiemmissa julkaisuissa, kuten tässä «Joitakin peruskomentoja ...»Olemme kommentoineet tämän suuren komennon peruskäyttöä, mutta Tässä julkaisussa näemme "grep" -komennon keskitasoisemman ja edistyneemmän käytön toiminnallisissa ja hyödyllisissä komentokomennoissa, jotka voivat helpottaa tiettyjä todellisia tehtäviä. komentosarjojemme sisällä tai suoraan päätelaitteessa, jotta saavutamme välittömämmän tuloksen tietyssä suoritettavassa tehtävässä.
Käytännön esimerkkejä
Katso sijainti / sijainti
painatus nykyisen hakemistomme sisältö graafisen hakemistopuun avulla:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
esimerkiksi:
Luo 30 merkin pituinen satunnainen salasana
Luo satunnaisia merkkijonoja / dev / urandomin sisällä ja valitse sitten yksi (1) suodattimella «grep» -komennolla vain aakkosnumeerisille merkeille, ensimmäisten 30 merkin koon ehdolla, poistamalla kaikki rivin syötteet.
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
esimerkiksi:
Luo graafinen yhteenveto yhteyksistä
Näytä graafisessa muodossa (taulukko) ja yhteenveto isäntän "netstat" -komennolla havaittujen sisäisten ja ulkoisten verkkoyhteyksien määrästä tiettynä ajankohtana.
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 "" }'
esimerkiksi:
Sitä voidaan käyttää myös muodostamaan yhteenvetotaulukko yhteyksien määrästä tyypin mukaan, kuten alla on esitetty:
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
esimerkiksi:
Etsi merkkijono (kuvio) polusta
Etsi ja näytä kaikki kuvion vastaavuudet tiedostojen nimissä tai tiedostosisällössä. Parametrien käyttö tämän saavuttamiseksi ovat: -R (Alihakemistojen toistuminen), -n (Näytä vastaavuuksien rivinumero), -i (Ohita isot ja pienet kirjaimet), -s (Hylkää 'ei ole viestejä "Ja" ei voi lukea "), -I (Ohita binäärit hakussa).
grep -RnisI *
Sitä voidaan käyttää myös edistyneemmällä tavalla, jos sitä käytetään komentokehotteessa "etsi" -komennon kanssa paikantamaan kuvio ennalta määritetyssä tiedostotyypissä. kuten alla:
find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;
Tiedä RAM-muistin tietojen määrä
Tämä on hyödyllistä tietää tarkalleen kuinka paljon tietoa (tietoja) odottaa kirjoittamista kiintolevylle, ja tietokone on pakotettava uudelleenkäynnistykseen tai sammutukseen.
grep ^Dirty /proc/meminfo
Tiedä WAN-IP-osoitteemme
Aina on erittäin hyödyllistä tuntea WAN-IP-osoitteemme automaattisesti päätelaitteesta ja siirtää sitten parametri toiselle automatisoidulle tehtävälle. Tässä esimerkissä käytetään DynDNS-palvelua sen hankkimiseen.
curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"
Luettelo verkko-segmenttiin liitetyistä laitteista
Käyttämällä for-silmukkaa "ping" -komennolla ja suodattamalla tulos "grep" -komennolla voimme vahvistaa verkkoon liitetyt tietokoneemme ping-palvelun ollessa käytössä ilman NMap-työkalua.
for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done
esimerkiksi:
Voit luetteloida jäljitetyn IP-osoitekentän käyttämällä tätä riviä entistä tarkemmin suodattamalla komennon "grep" tulokset käyttämällä komentoja "awk" ja "cut", kuten alla on esitetty:
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
esimerkiksi:
Nämä esimerkit komentoriveistä grep-komennolla. Ja niitä käytetään käytettäväksi suoraan konsolista tai epäsuorasti lisäämällä ne komentosarjaan (automaattinen tehtävä).
Seuraavassa Shell Scripting -viestissä tutkimme muita komentoja.
Jos haluat oppia lisää «grep» -komennosta, käy tällä linkillä «DEBIAN Wiki»Ja jos haluat lisätietoja Shell Scriptingistä omassa blogissamme, voit tutustua muihin aiheeseen liittyviin julkaisuihimme napsauttamalla tätä: Käsikirjoitus DesdeLinux
Artikkeli on hieno, kiitos paljon.
Olet tervetullut, se on ilo! Nyt tulee yksi komento Sed.