Под *отклоняют, как я могу найти строку в файле в рамках каталога?

Я использую человечность Linux, и я использую удар от с эмулятором терминала каждый день для многих задач.

Я хотел бы знать, как найти строку или подстроку в файле, который является в рамках конкретного каталога.

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

cat file | grep mysubstring

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

Как я выслеживаю свою подстроку?

2
задан 02.05.2010, 13:29

6 ответов

Используйте подстановочный знак оболочки:

grep mysubstring *

Если Вы хотите искать подкаталоги, используйте -r опция рекурсивно вызвать в них:

grep -r myssubstring .
11
ответ дан 08.12.2019, 04:34
find -type f | xargs grep mysubstring

Эти команды (find, xargs и grep) имейте много опций, таким образом, можно настроить эту операцию существенно.

4
ответ дан 08.12.2019, 04:34

скажите, что я хочу найти все файлы кода Python, которые содержат текст "Wiki" в соответствии с каталогом "~ / проекты", вот сценарий:

grep -lir "wiki" ~/projects/**/*.py

скорректируйте сценарий к своим конкретным требованиям.

4
ответ дан 08.12.2019, 04:34

Неважно, как Вы делаете это, не делайте файлов кошки в grep. Ваша исходная версия

cat file | grep mysubstring

более правильно сделан как

grep mysubstring file
2
ответ дан 08.12.2019, 04:34

Если Вы не должны делать этого в пакетном режиме, Вы могли бы установить полуночного командующего (мГц), это может искать строки в файлах.

1
ответ дан 08.12.2019, 04:34

Если Вы хотите найти все файлы с определенной Строкой рекурсивными от "текущего" dir, используйте:

find . -type f -exec grep -l mysubstring {} \;

(должен работать над большинством *, отклоняют'),

1
ответ дан 08.12.2019, 04:34

Теги

Похожие вопросы