Как да използвам командата grep за по-добро извличане на данни

Взаимодействието с данни е основната функция на всеки ИТ специалист. Всяка роля е уникална и носи със себе си специфични предизвикателства, но в основата на всяка роля лежи една и съща основна предпоставка: Като ИТ ние интерпретираме и отговаряме на получените данни и ако не са точни, предприемаме мерки за коригиране на поток от данни. Когато автоматизираме задачи, базирани на скриптове, това обикновено се прави в отговор на известни параметри и осигурява предварително определен набор от команди за изпълнение, като по този начин автоматизира повтарящите се задачи.

Това е страхотно и аз от сърце препоръчвам ИТ професионалистите да автоматизират, където е възможно, за да увеличат максимално производителността и да ограничат престоя на всички заинтересовани страни. Но какво, ако можете да изпълнявате команди или да пишете скриптове, които да предоставят информация и да правят промени (изпълняват команди) въз основа на отговорите? Можете да автоматизирате задачите с малко логика, за да позволите на скрипта да отчита различни възможности, ограничени само от вашето въображение или възможности за писане на скриптове.

Скриптове като тези могат да бъдат намерени в много популярни форуми или GitHub и стига да са тествани и проверени, за да работят за вашата среда, определено трябва да ги внедрите, когато е възможно. Но ако сте по-скоро от типа „направи си сам“, искате да научите това практически или не можете да намерите подходящо, предварително създадено решение, мога ли да ви представя командата grep?

Grep се намира в Linux и macOS системи. Предлага се и като инсталируем пакет за Windows.

Какво е grep?

Според ръководството за греп в macOS, “Помощната програма grep търси във всеки даден входен файл, като избира редове, които съответстват на един или повече модели.” Това означава, че grep по същество търси данни, които съответстват на определен набор от думи или модели, които му казвате да търси. Входът за grep за търсене може да идва от файлове, подадени към помощната програма, или по-често се използва заедно с изхода на команди, които се изпълняват в grep след изпълнение за идентифициране на определени битове данни.

Защо да използвам grep?

Освен намаляване, може би драстично, на ръчно търсене на файлове или изходи на команди за конкретни данни или отговори, както беше споменато по-горе, grep може да бъде включен във верига от команди с изхода на предишна команда, вкаран във входа, за да се пресее grep. Това позволява изходът от grep да бъде пренасочен към следваща команда за изпълнение на друга команда срещу и т.н. Когато се комбинира с други команди в рамките на скрипт, grep може да се използва за четене на информация от един файл, за да се определи дали командата трябва да продължи в една или друга посока, намалявайки броя на скриптовете за поддържане (и актуализиране).

Кои са някои примери за grep в действие?

По-долу ще дам няколко реални примера за grep, използвани в скриптове, за да установим разбирането за това как работи grep и да подчертаем колко добре играе с други команди. От вас зависи да видите как може да бъде интегриран, за да добавите универсална функционалност към вашите скриптове.

1. Проверете хеш стойността за актуализация преди инсталацията
В примера по-долу имаме файл, наречен “macOS_Update01.pkg”, който искаме да инсталираме, но искаме да проверим стойността на хеш, за да се уверим, че целостта на файла е непокътната. Знаем, че стойността на хеш е “9aac9b799f3bb26da66f886024e1af58a1b4d3a7” и, както е обичайната практика, имаме файл с име “hash.sha” със стойността SHA1, записана в него. Като изпълни командата grep по-долу с известната хеш стойност, съхранена във файла с контролна сума, низът ще извърши проверка на стойностите, сравнявайки ги. Ако съвпада, терминалът ще изведе името на файла на екрана, за да потвърди целостта.

grep 9aac9b799f3bb26da66f886024e1af58a1b4d3a7 hash.sha
2. Определете версията на софтуера на macOS и експортирайте несъответстващи устройства
В този пример изпълняваме команда, за да определим кога текущата работеща версия на macOS е инсталирана на група устройства. Тези, които не съответстват на 11.1, ще бъдат експортирани в списък със заглавие NeedsUpdating.csv за преглед. Изходът на първата команда ще бъде прехвърлен в grep, за да намали информацията, която отговаря на изискването.

sw_vers -productVersion | grep -v 11.1> “NeedsUpdating.csv”

Leave a Reply

Your email address will not be published. Required fields are marked *