Polecenie „grep” w Wolnych Systemach Operacyjnych, takich jak GNU / Linux, jest bardzo cennym i użytecznym poleceniem. Jego nazwa pochodzi od angielskiego wyrażenia: «Global Regular Expression Print» i służy do wyszukiwania, dopasowywania i wyświetlania wzorca wyszukiwania lub wyrażenia regularnego jednego (1) pliku lub kilku plików tekstowych.
Zasadniczo, polecenie «grep» wyszukuje wzorzec wskazany w parametrach polecenia polecenia i drukuje wyniki uzyskane po wskazaniach parametrów polecenia polecenia., którym może być: ekran lub plik wyjściowy.
Wprowadzenie do polecenia „grep”
Już w innych poprzednich publikacjach tego samego bloga, takich jak ten «Kilka podstawowych poleceń w ...»Skomentowaliśmy podstawowe zastosowanie tego wielkiego polecenia, ale W tej publikacji zobaczymy bardziej pośrednie i zaawansowane użycie polecenia „grep” w ramach funkcjonalnych i przydatnych poleceń, które mogą ułatwić pewne rzeczywiste zadania. w naszych skryptach powłoki lub bezpośrednio na terminalu, aby uzyskać szybszy wynik dla określonego zadania do wykonania.
Praktyczne przykłady
Zobacz naszą pozycję / lokalizację
druk zawartość naszego bieżącego katalogu za pomocą graficznego drzewa katalogów:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
przykład:
Wygeneruj losowe hasło o długości 30 znaków
Wygeneruj losowe ciągi w / dev / urandom, a następnie wybierz i wyświetl pojedynczy (1) przy użyciu filtrowania z poleceniem «grep» tylko dla znaków alfanumerycznych, z warunkiem rozmiaru pierwszych 30 znaków, eliminując wszystkie nowe wiersze.
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
przykład:
Wygeneruj graficzne podsumowanie połączeń
Widok w formie graficznej (tabela) i podsumowanie liczby wewnętrznych i zewnętrznych połączeń sieciowych wykrytych przez polecenie "netstat" hosta w danym czasie.
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 "" }'
przykład:
Można go również użyć do wygenerowania tabeli zbiorczej z liczbą połączeń według ich typu, jak pokazano poniżej:
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
przykład:
Znajdź ciąg (wzór) w ścieżce
Zlokalizuj i wyświetl wszystkie dopasowania wzorca w nazwach plików lub ich zawartości. Parametry do tego służą: -R (Powtarzanie dla podkatalogów), -n (Pokaż numery wierszy dopasowań), -i (Ignoruj duże i małe litery), -s (Pomiń komunikaty „nie istnieje” „I” nie można odczytać "), -I (Ignoruj pliki binarne podczas wyszukiwania).
grep -RnisI *
Może być również używany w bardziej zaawansowany sposób, jeśli jest używany w wierszu polecenia z poleceniem „znajdź”, aby zlokalizować wzorzec w predefiniowanym typie pliku. jak pokazano niżej:
find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;
Poznaj ilość danych w pamięci RAM
Jest to przydatne, aby dokładnie wiedzieć, ile danych (informacji) czeka na zapisanie na dysku twardym i konieczne jest wymuszenie ponownego uruchomienia lub wyłączenia komputera.
grep ^Dirty /proc/meminfo
Poznaj nasz adres IP WAN
Zawsze jest bardzo przydatne, aby znać nasz adres IP WAN automatycznie z terminala, a następnie przekazać ten parametr do innego automatycznego zadania. Ten przykład wykorzystuje usługę DynDNS, aby ją uzyskać.
curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"
Wymień sprzęt podłączony do segmentu sieci
Używając pętli for z poleceniem „ping” i filtrując wynik poleceniem „grep”, możemy sprawdzić poprawność naszych komputerów podłączonych do sieci z włączoną usługą ping bez konieczności używania narzędzia NMap.
for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done
przykład:
Aby wyświetlić śledzone pole adresu IP, możesz zrobić bardziej zaawansowane użycie tej linii, filtrując wyniki polecenia "grep" za pomocą poleceń "awk" i "cut", jak pokazano poniżej:
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
przykład:
Te przykłady wierszy poleceń używających polecenia grep. I służą do użycia bezpośrednio z konsoli lub pośrednio poprzez wstawienie ich do skryptu (zadanie automatyczne).
W następnym poście o skryptach powłoki omówimy inne polecenia.
Jeśli chcesz dowiedzieć się więcej na temat polecenia «grep», odwiedź ten link «DEBIAN Wiki»A jeśli chcesz dowiedzieć się więcej o skryptach powłoki na naszym własnym blogumożesz zapoznać się z innymi naszymi publikacjami na ten temat, klikając tutaj: Skrypty DesdeLinux
Artykuł jest świetny, bardzo dziękuję.
Nie ma za co, to przyjemność! Teraz pojawia się jeden z komendą Sed.