Поиск файлов кода для определенной строки - PullRequest
1 голос
/ 07 декабря 2009

Я использую Ubuntu Karmic в качестве операционной системы. Мне часто нужно искать в папке моего проекта определенную строку, чтобы увидеть, есть ли она в каком-либо из файлов в папке проекта или его подпапках. В настоящее время я использую команду find для этого и написал скрипт, который принимает строку, которую я ищу, в качестве параметра.

find . -exec grep -l $1 {} \;

Но проблема в том, что он не работает со строками, в которых есть пробел. Итак, есть ли способ поиска строк, разделенных пробелами, или есть какой-нибудь инструмент, который выполняет эту работу?

Спасибо.

Ответы [ 5 ]

1 голос
/ 07 декабря 2009

Как вы вызываете свой скрипт?

Если вы хотите искать строки, разделенные пробелами, вам нужно сделать
вызов в форме:

%./script_name.sh 'search string'<br>

, а также измените вызов find на:

найти. -exec grep -l "$ 1" {} \;

1 голос
/ 07 декабря 2009

Лучшая версия этой команды - просто grep -rl "$1" . или, возможно, grep -rl "$*" ..

Если ваша строка содержит правильное количество места, и проблема заключается в том, что оболочка разбирает аргументы, вы можете ссылаться на каждый аргумент с помощью "$*", и вы можете предотвратить разрыв оболочки на границах слов (но все же разрешить расширение параметров) с помощью двойных кавычек soft .

0 голосов
/ 19 марта 2013
find / -type d -name "folder name" 2> /dev/null
0 голосов
/ 07 декабря 2009
grep -R "phrase with spaces" /folder/folder
0 голосов
/ 07 декабря 2009

Я полагаю, что вы можете просто сделать grep -lR ${1} ., чтобы достичь того, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...