Grep: Lernado de Ŝelaj Skriboj Uzante la Komandon Grep Terminal

grep-komando

Lernado de Ŝelaj Skriptoj per la fina komando: grep

La komando "grep" en Liberaj Operaciumoj kiel GNU / Linukso estas tre valora kaj utila komando. Ĝia nomo venas de la frazo en la angla: «Global Regular Expression Print» kaj ĝi estas uzata por plenumi la taskon trovi, kongrui kaj montri serĉan ŝablonon aŭ regulan esprimon de unu (1) dosiero aŭ pluraj tekstdosieroj.

Esence la komando «grep» serĉas la ŝablonon indikitan en la komandaj komandaj parametroj, kaj presas la rezultojn akiritajn laŭ la indikoj de la komandaj komandaj parametroj., kiu povas esti: la Ekrano aŭ Eliga Dosiero.

Enkonduko al la komando "grep"

Jam en aliaj antaŭaj eldonaĵoj de la sama blogo, kiel ĉi tiu «Iuj bazaj komandoj pri ...»Ni komentis la bazan uzon de ĉi tiu bonega komando, sed En ĉi tiu eldonaĵo ni vidos pli mezan kaj progresintan uzon de la komando "grep" ene de funkciaj kaj utilaj komandoj, kiuj povas faciligi iujn verajn taskojn. ene de niaj ŝelaj skriptoj aŭ rekte sur la terminalo por atingi pli tujan rezulton pri specifa tasko plenumota.

Praktikaj ekzemploj

Rigardu nian pozicion / lokon

presita la enhavo de nia aktuala dosierujo per grafika dosierujo.

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'

Ekzemplo:

Grep: Arbo-simila dosierujo

Generi hazardan pasvorton de 30 signoj

Kreu hazardajn ĉenojn ene de / dev / urandom kaj poste elektu kaj montru unu (1) per filtrado kun la komando «grep» por nur alfanombraj signoj, kun la kondiĉo de la grandeco de la unuaj 30 signoj, forigante ĉiujn liniajn fluojn.

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

Ekzemplo:

Grep: Generi Pasvorton

Generi grafikan resumon de ligoj

Rigardu en grafika formo (tabelo) kaj resumis la nombron de internaj kaj eksteraj retaj konektoj detektitaj de la komando "netstat" de gastiganto samtempe.

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 "" }'

Ekzemplo:

Grep: Netstat-Konekta Grafiko

Ĝi ankaŭ povas esti uzata por generi resuman tabelon de la nombro de konektoj laŭ tipo de ili, kiel montrite sube:

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

Ekzemplo:

Grep: Resumaj Tabeloj kun Netstat

Trovu ŝnuron (ŝablono) ene de vojo

Trovu kaj montru ĉiujn kongruojn de ŝablono en dosiernomoj aŭ dosierenhavo. La uzo de parametroj por atingi ĉi tion estas: -R (Ripeto por subdosierujoj), -n (Montri liniajn nombrojn de matĉoj), -i (Ignori majusklojn kaj minusklojn), -s (Suppress 'ne ekzistas mesaĝoj "Kaj" ne legeblas "), -I (Ignori duumaĵojn serĉe).

grep -RnisI  *

Grep: Serĉu ŝablonojn en dosieroj kaj dosierujoj

Ĝi ankaŭ povas esti uzata laŭ pli progresinta maniero, se ĝi estas uzata ene de komanda peto kun la komando "trovi" por lokalizi ŝablonon ene de antaŭdifinita dosiertipo. kiel montrite sube:

find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;

Grep: Serĉu ŝablonojn en dosieroj

Sciu la kvanton de datumoj en RAM-memoro

Ĉi tio estas utila por scii precize kiom da datumoj (informoj) atendas por esti skribitaj al la fiksita disko kaj necesas devigi rekomencon aŭ ĉesigon de komputilo.

grep ^Dirty /proc/meminfo

Grep: Datumoj en RAM

Sciu nian WAN-IP-adreson

Ĉiam estas tre utile scii nian WAN-IP aŭtomate de la terminalo kaj poste transdoni tiun parametron al alia aŭtomata tasko. Ĉi tiu ekzemplo uzas la servon DynDNS por akiri ĝin.

curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

Grep: Sciu nian WAN-IP

Enlistigu la ekipaĵojn konektitajn al Reta segmento

Uzante for-buklon kun la komando "ping" kaj filtrante la rezulton per la komando "grep", ni povas validigi niajn komputilojn konektitajn al la reto kun la ping-servo ebligita sen la bezono de la ilo NMap.

for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done

Ekzemplo:

Por listigi la spuritan IP-adresan kampon, vi povas pli progreseme uzi ĉi tiun linion, filtrante la rezultojn de la komando "grep" per la komandoj "awk" kaj "tranĉi", kiel montrite sube:

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

Ekzemplo:

Grep: LAN-IP-Enlistigo

Ĉi tiuj ekzemploj de komandlinioj uzantaj la komandon grep. Kaj ili utilas por esti uzataj rekte de la konzolo aŭ nerekte enmetante ilin en skripton (aŭtomata tasko).

En la sekva afiŝo pri Shell Scripting ni esploros aliajn komandojn.

Se vi volas lerni iom pli pri la komando «grep», vizitu ĉi tiun ligon «Vikio DEBIAN»Kaj se vi volas lerni pli pri Shell-Skriptado en nia propra Blogo, vi povas rigardi niajn aliajn eldonaĵojn pri la temo, alklakante ĉi tie: Skribado en FromLinux


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

2 komentoj, lasu la viajn

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita per *

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

  1.   Leandro diris

    La artikolo estas bonega, dankegon.

  2.   Linuksa Afiŝinstalo diris

    Bonvenon, estas plezuro! Nun venas unu kun la komando Sed.