Команда „греп“ у бесплатним оперативним системима као што је ГНУ / Линук је веома вредна и корисна команда. Његово име потиче од фразе на енглеском: «Глобал Регулар Екпрессион Принт» и користи се за извршавање задатка проналажења, подударања и приказивања узорка претраживања или регуларног израза једне (1) датотеке или неколико текстуалних датотека.
У основи, наредба «греп» тражи образац назначен у параметрима наредбе наредбе и исписује резултате добијене слиједећи назнаке у параметрима наредбе наредбе, што може бити: екран или излазна датотека.
Увод у наредбу „греп“
Већ у другим претходним публикацијама истог блога, попут ове «Неке основне команде о ...»Прокоментарисали смо основну употребу ове велике заповести, али У овој публикацији видећемо средњу и напреднију употребу наредбе „греп“ у оквиру функционалних и корисних наредби које могу олакшати одређене стварне задатке. унутар наших скрипти љуске или директно на терминалу како бисмо постигли непосреднији резултат на одређеном задатку који треба извршити.
Практични примери
Погледајте нашу позицију / локацију
Штампа садржај нашег тренутног директоријума користећи графичко стабло директоријума:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
Пример:
Генеришите случајну лозинку дужине 30 знакова
Генеришите случајне низове унутар / дев / урандом, а затим изаберите и прикажите један (1) користећи филтрирање помоћу команде «греп» само за алфанумеричке знакове, уз услов величине првих 30 знакова, елиминишући све феедове редова .
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
Пример:
Генеришите графички резиме веза
Приказ графички (табела) и резимирани број интерних и екстерних мрежних веза које је детектовала наредба "нетстат" хоста у било ком тренутку.
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 "" }'
Пример:
Такође се може користити за генерисање збирне табеле броја веза према њиховом типу, као што је приказано доле:
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
Пример:
Пронађите низ (образац) унутар путање
Пронађите и прикажите сва подударања узорка у именима датотека или садржају датотеке. Коришћење параметара за постизање овог су: -Р (Понављање за поддиректоријуме), -н (Прикажи бројеве редова подударања), -и (Занемари велика и мала слова), -с (Потисни поруке 'не постоји') „И„ не може се прочитати “), -И (Занемари бинарне датотеке у претрази).
grep -RnisI *
Такође се може користити на напреднији начин ако се користи у командној линији са наредбом „пронађи“ за проналажење узорка унутар унапред дефинисаног типа датотеке. како је приказано испод:
find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;
Знати количину података у РАМ меморији
Ово је корисно да се тачно зна колико података (информација) чека на упис на чврсти диск и потребно је принудно поново покренути или искључити рачунар.
grep ^Dirty /proc/meminfo
Знајте нашу ВАН ИП адресу
Увек је врло корисно знати наш ВАН ИП аутоматски са терминала, а затим проследити тај параметар другом аутоматизованом задатку. Овај пример користи услугу ДинДНС да би је добио.
curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"
Наведите опрему повезану на мрежни сегмент
Коришћењем петље фор са командом „пинг“ и филтрирањем резултата помоћу команде „греп“ можемо да потврдимо своје рачунаре повезане на мрежу са омогућеном услугом пинг без потребе за алатом НМап.
for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done
Пример:
Да бисте пописали поље праћене ИП адресе, ову линију можете напредније користити, филтрирајући резултате наредбе «греп» помоћу команди «авк» и «цут», као што је приказано доле:
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
Пример:
Ови примери командних линија које користе греп наредбу. И користе се за директну употребу са конзоле или индиректно уметањем у скрипту (аутоматизовани задатак).
У следећем посту о Схелл Сцриптинг истражићемо друге команде.
Ако желите да сазнате нешто више о команди «греп», посетите овај линк «ДЕБИАН Вики»А ако желите да сазнате више о Схелл скриптирању на нашем сопственом блогу, можете погледати наше остале публикације на ту тему, кликом овде: Скриптирање DesdeLinux
Чланак је сјајан, пуно вам хвала.
Нема на чему, задовољство је! Сада долази један са командом Сед.