команда unix bash - PullRequest
       3

команда unix bash

3 голосов
/ 31 августа 2010

Как написать команду bash, которая находит все файлы в текущем каталоге, содержащие слово «foo», независимо от регистра?

Ответы [ 6 ]

2 голосов
/ 31 августа 2010

Если вы хотите, чтобы "foo" проверялось на наличие конкурсов файлов в ., сделайте это:

grep . -rsni -e "foo"

, чтобы узнать больше параметров (-I, -T, ...), см. man grep.

1 голос
/ 31 августа 2010

Предполагая, что вы хотите искать внутри файлов (не имена файлов)

Если вы хотите, чтобы поиск выполнялся только в текущем каталоге (не в дереве)

grep * -nsie "foo"

, если вы хотите сканировать все дерево (из текущего каталога)

grep . -nsrie "foo"
0 голосов
/ 31 августа 2010

Я всегда использовал эту маленькую команду оболочки:

gfind () { if [ $# -lt 2 ]; then files="*"; search="${1}"; else files="${1}"; search="${2}"; fi; find . -name "$files" -a ! -wholename '*/.*' -exec grep -Hin ${3} "$search" {} \; ; }

вы звоните по номеру gfind '*php' 'search string' или если хотите найти все файлы gfind 'search string'

0 голосов
/ 31 августа 2010

Попробуйте:

echo *foo*

напечатает имена файлов / каталогов, совпадающие с *foo* в текущем каталоге, что соответствует любому имени, содержащему 'foo'.

0 голосов
/ 31 августа 2010
shopt -s nullglob
shopt -s nocaseglob
for file in *foo*
...
...
..
0 голосов
/ 31 августа 2010

найти.тип F |grep -i "foo"

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