Сегодня поделюсь с вами командой, которая позволяет легко и быстро найти нужную вам функцию по всей вашей кодовой базе.
В моем случае мне нужно найти мою реализацию очереди на Питоне, которую я когда-то делал, но не помню, в каком проекте. Для этого я использовал следующую команду:
find ~/repos -name "*.py" | xargs grep -i "queue”
Разберем ее по частям:
- find – команда, которая производит поиск файлов
- далее идет папка, в которой мы будем искать: ~/repos
- после -name указываем, в каких файлах будем искать (в нашем случае это все питоновские файлы)
- вертикальная черта | означает перенаправление вывода в следующую команду, то есть результат выполнения команды find ~/repos -name "*.py" будет передан в следующую команду, а не напечатан в терминале
- после вертикальной черты идет команда поиска внутри переданных файлов из команды, стоящей до черты
Для удобства, мы можем использовать следующие варианты команды.
Вывести все найденные строки в файл:
find ~/repos -name "*.py" | xargs grep -i "queue" > ~/temp/find_queue.txt
Не искать в питоновских подключаемых пакетах в папках `site-packages`:
find ~/repos -name "*.py" -not -path '*/site-packages/*' | xargs grep -i "queue”
#junior #middle #shell #command_line