Intereting Posts
Щелчок в поле редактирования MFC apache и httpd, но я не вижу свой сайт расширьте адрес IPv6, чтобы я мог распечатать его на stdout Контейнеры Windows с отчетами dockerов HNS с ошибкой: файл нельзя открыть, поскольку он находится в процессе удаления Проблема с выпуском Grails 2.3.0 с косой чертой Windows Nginx + uWSGI + Django возвращают 502 при большом запросе и истекшем сеансе Плюс знак и процентные знаки в .htaccess mod_rewrite Не удалось выполнить цель org.apache.maven.plugins: maven-archetype-plugin: 2.4: сгенерировать PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку «…» не удалось отобразить сегмент из общего объекта: не удается выделить память в Unknown в строке 0 Unix на мейнфрейме: компилятор COB2, для Java-вызова COBOL Проблемы с Frapi-Framework Apache Wicket – добавление HTML в панель отзывов В чем разница между CloseableHttpClient и HttpClient в API Apache HttpClient? Apache Reverse proxy с прокси-аутентификацией удалить – отключить memcached ubuntu

Быстрый способ поиска определенных строк кода через множество файлов в проекте

В настоящее время я работаю над проектом C, который содержит более 50 файлов .h и .c. Я хотел бы знать, есть ли быстрый способ поиска определенных строк кода (например, ctrl + f для windows, например), без необходимости фактически искать каждый файл по одному.

заранее спасибо

В Linux / Unix есть инструмент командной строки grep вы можете использовать для поиска нескольких файлов для строки. Например, если бы я хотел искать strcpy во всех файлах:

 ~/sandbox$ grep -rs "strcpy" * test.c: strcpy(OSDMenu.name,"OSD MENU"); 

-r дает поиск рекурсивно, поэтому вы получаете все файлы во всех каталогах (от текущего). -s игнорирует предупреждения, если вы работаете с нечитаемыми файлами.

Теперь, если вы хотите найти что-то обычай, и вы не можете вспомнить, что есть варианты, такие как -i чтобы разрешить поиск в insenstive.

 ~/sandbox$ grep -rsi "myint" * test.c: int myInt = 5; test.c: int MYINT = 10; 

Вы также можете использовать регулярные выражения, если вы забыли точно, что именно вы искали (действительно, имя, «grep» происходит из команды sed g / re / p – global / regular expression / print:

 ~/sandbox$ grep -rsi "my.*" * test.c: int myInt = 5; test.c: int MYINT = 10; test.c: float myfloat = 10.9; 

установите cygwin, если вы не используете * nix и используете find / grep, например

 find . -name '*\.[ch]' | xargs grep -n 'myfuncname' 

Вы можете использовать grep для поиска файлов с помощью терминала / командной строки.

 grep -R "string_to_search" . 

-R быть рекурсивным, искать во всех подкаталогах тоже

Тогда строка, которую вы хотите

Тогда это место,. для текущего каталога

Если вы используете текстовый редактор и оболочку, то вы можете использовать инструменты оболочки, такие как grep .

 grep -R "some pattern" directory 

Однако вы должны использовать IDE, такую ​​как Eclipse (это не только для Java), Netbeans (есть плагин C) или KDevelop. У IDE есть сочетания клавиш для таких вещей, как «найти всюду, когда вызывается выделенная функция».

Или, конечно, есть Emacs …

В windowsх вы можете использовать findstr, который найдет файлы, содержащие строки, которые либо точно совпадают, либо регулярные выражения соответствуют указанной строке / шаблону.

 findstr /? 

из командной строки даст вам возможность использования. Он также может переписывать подкаталоги (/ s).