Komanda "grep" brīvajās operētājsistēmās, piemēram, GNU / Linux, ir ļoti vērtīga un noderīga komanda. Tās nosaukums cēlies no frāzes angļu valodā: «Globālā regulārās izteiksmes druka», un to izmanto, lai atrastu, saskaņotu un parādītu meklēšanas modeli vai viena (1) faila vai vairāku teksta failu regulāru izteiksmi.
Būtībā komanda «grep» meklē komandu parametros norādīto modeli un izdrukā rezultātus, kas iegūti pēc komandas komandas parametru norādēm, kas var būt: ekrāns vai izvades fails.
Ievads komandā "grep"
Jau citās tā paša emuāra iepriekšējās publikācijās, piemēram, šajā «Dažas pamata komandas ...»Mēs esam komentējuši šīs lieliskās komandas pamata lietojumu, bet Šajā publikācijā mēs redzēsim "grep" komandas starpposma un uzlabotu izmantošanu funkcionālu un noderīgu komandu komandu ietvaros, kas var atvieglot noteiktus reālus uzdevumus. mūsu čaulas skriptos vai tieši uz termināļa, lai sasniegtu tūlītēju rezultātu attiecībā uz konkrētu veicamo uzdevumu.
Praktiski piemēri
Apskatiet mūsu stāvokli / atrašanās vietu
Imprimir pašreizējā direktorija saturs, izmantojot grafisko direktoriju koku:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
piemērs:
Ģenerējiet nejaušu paroli 30 rakstzīmju garumā
Ģenerējiet nejaušas virknes iekšpusē / dev / urandom un pēc tam atlasiet un parādiet vienu (1), izmantojot filtrēšanu ar komandu «grep» tikai burtciparu rakstzīmēm ar nosacījumu, ka tiek noteiktas pirmās 30 rakstzīmes, izslēdzot visas rindu plūsmas.
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
piemērs:
Ģenerējiet savienojumu grafisko kopsavilkumu
Skatiet grafiskā formā (tabulā) un apkopojiet iekšējā un ārējā tīkla savienojumu skaitu, ko noteiktā laikā noteica resursdatora komanda "netstat".
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 "" }'
piemērs:
To var izmantot arī, lai izveidotu kopsavilkuma tabulu par savienojumu skaitu pēc to veida, kā parādīts zemāk:
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
piemērs:
Ceļā atrodiet virkni (rakstu)
Atrodiet un parādiet visas modeļa atbilstības failu nosaukumos vai failu saturā. Parametru izmantošana, lai to panāktu, ir: -R (Apakšdirektoriju atkārtošanās), -n (Rādīt atbilstību rindu numurus), -i (Ignorēt lielos un mazos burtus), -s (Apspiest 'nav ziņojumu. lasīt "), -I (ignorēt bināros failus meklēšanā).
grep -RnisI *
To var izmantot arī uzlabotā veidā, ja to izmanto komandu uzvednē ar komandu "atrast", lai atrastu modeli iepriekš definētā faila tipā. kā parādīts zemāk:
find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;
Zināt datu apjomu RAM atmiņā
Tas ir noderīgi, lai precīzi zinātu, cik daudz datu (informācijas) gaida ierakstīšana cietajā diskā, un ir nepieciešams piespiest datoru restartēt vai izslēgt.
grep ^Dirty /proc/meminfo
Ziniet mūsu WAN IP adresi
Vienmēr ir ļoti noderīgi automātiski zināt mūsu WAN IP no termināla un pēc tam nodot šo parametru citam automatizētam uzdevumam. Šajā piemērā tā iegūšanai tiek izmantots pakalpojums DynDNS.
curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"
Uzskaitiet tīkla segmentam pievienoto aprīkojumu
Izmantojot for ciklu ar komandu "ping" un filtrējot rezultātu ar komandu "grep", mēs varam pārbaudīt savus datorus, kas ir savienoti ar tīklu, ar iespējotu ping pakalpojumu bez nepieciešamības pēc NMap rīka.
for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done
piemērs:
Lai uzskaitītu izsekojamās IP adreses lauku, varat vairāk izmantot šo rindu, filtrējot komandas «grep» rezultātus, izmantojot komandas «awk» un «cut», kā parādīts zemāk:
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
piemērs:
Šie komandrindu piemēri, izmantojot komandu grep. Un tie tiek izmantoti tieši no konsoles vai netieši, tos ievietojot skriptā (automatizēts uzdevums).
Nākamajā ziņojumā par Shell Scripting mēs izpētīsim citas komandas.
Ja vēlaties uzzināt nedaudz vairāk par komandu «grep», apmeklējiet šo saiti «VĀRDU VALODA»Un, ja vēlaties uzzināt vairāk par Shell Scripting mūsu pašu emuārā, jūs varat apskatīt citas mūsu publikācijas par šo tēmu, noklikšķinot šeit: Skriptēšana DesdeLinux
Raksts ir lielisks, liels paldies.
Esiet laipni gaidīti, tas ir prieks! Tagad nāk viens ar komandu Sed.