Найти в Дзене
Реальный Код

Поиск функции по кодовой базе

Сегодня поделюсь с вами командой, которая позволяет легко и быстро найти нужную вам функцию по всей вашей кодовой базе.

В моем случае мне нужно найти мою реализацию очереди на Питоне, которую я когда-то делал, но не помню, в каком проекте. Для этого я использовал следующую команду:

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