Ack: По-добър Греп
Ако имате някакъв опит с помощта на командния ред на Linux, без съмнение сте използвали "grep" за търсене на струни от текст, независимо дали идват от файлове или от команди. Има по-добър начин да го направите и се нарича Ack.
Ack е програма, написана в Perl, която има за цел да бъде заместител на вековният стар Греп, който се намира от началото на 70-те години на миналия век. (В случай, че се чудите, grep означава "Global Regular Expression Print.")
Авторът на Ack, Анди Лестър, е толкова уверен, че Ack е по-добър от грепката, че сайтът на проекта му е наречен betterthangrep.com.
Можете да го получите по няколко начина. Ако сте обикновен потребител на Perl, можете да използвате CPAN, за да го инсталирате, може би с Perlbrew, както описах в предишна статия. Cpanminus е популярен лек CPAN клиент. За да инсталирате Ack с него, просто използвайте тази команда:
cpanm App :: Ack
Разбира се, ако използвате Ubuntu и искате да го инсталирате чрез apt-get, вие сте свободни да го направите, въпреки че Ubuntu има тенденция да бъде зад последната версия на разработчика. Просто използвайте тази команда:
sudo apt-get инсталирате ack-grep
Можете да използвате Ack почти по начина, по който можете да използвате grep. Например, за да намерите името "maketecheasier" във файла mte.txt, просто използвайте тази команда:
ack maktecheasier mte.txt
Или можете да пренасочите изхода към него:
котка | академичен грим
Една от основните функции, които новите потребители ще забележат, е, че ви дава хубава визуална светлина на търсещия низ в изхода, което означава, че можете да видите точно дали всъщност отговаряте на това, което търсите.
Ако търсите със сложен регулярен израз, можете да видите какво точно съвпада, като същевременно откривате фалшиви положителни знаци.
Друга полезна функция е, че Ack автоматично търси файлове рекурсивно. Това означава, че Ack не само ще претърси всички файлове в директорията, ако я даде, ако тази директория съдържа други директории, тя ще търси и тези, докато стигнете до дъното на дървото на директориите. Това е особено полезно за програмистите (и ако сте един, вероятно вече знаете какво рекурсивно означава), но също така е много полезно, ако търсите шаблон в куп обикновени текстови файлове.
И говорейки за програмирането, можете да стесните търсенето си на различни популярни езици за програмиране. Ето един пример, използващ Perl:
ack -perl "somepattern" / my / директорията
Можете да намерите още примери в раздела "Типове файлове на Ack" в документацията.
Тъй като Ack е написан в Perl, той автоматично е съвместим с регулярните изрази на Perl. Редовните изрази са вид прецизно прецизно търсене на текст, което ви позволява да намерите много специфични текстови модели.
Най-добрата и най-забавна функция е опцията " --thpppt
", която извиква един художествен чертеж на ASCII на Бил кота:
_ / | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ "
Тъй като Unix и Linux го правят сравнително лесно за писане на програми, възможно е лесно да се създадат замени за общи системни програми. Ack е едно от онези, които показват творчеството на общностите на Perl и Unix / Linux.