Как бы вы выполнили поиск из оболочки Unix с обоими ограничениями на имя файла и содержимое файла? - PullRequest
0 голосов
/ 11 января 2010

Можно ли выполнить полнотекстовый поиск? Как бы вы провели поиск с некоторыми ограничениями на имя файла и содержимое файла?

Ответы [ 4 ]

6 голосов
/ 11 января 2010

найти.имя, что угодноxargs grep what

Добавьте опцию "-l" в grep, чтобы получить только имена файлов.

3 голосов
/ 12 января 2010

Я бы настоятельно рекомендовал приобрести ack и использовать его для любых вещей типа findy-greppy-type, которые вы хотите сделать - я использую его каждый день и не могу представить, как я жил без него ! В этом случае кажется, что ack -G <file-regex> <text-regex> будет делать то, что вы хотите.

2 голосов
/ 11 января 2010

В некоторых случаях глобализация будет достаточно ограничивать ваши имена файлов:

shopt -s nullglob    # Bash: prevents "No such file or directory" errors
grep string {.,[jm]*,{one,two}}/{[a-c],[hlz]}?{earth,mars,venus}[[:ascii:]]*atm*.dat

, который будет искать файлы, такие как:

./bZmars_321atmBB111.dat
m42a/z3venus-a18atm9.dat
two/aaearth+GHIatm9876.dat
2 голосов
/ 11 января 2010
find -name whatever -exec grep --with-filename you_search_for_it {} \;

{} содержит имя файла, возвращаемое find

\; для прекращения команды поиска

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