что правильный шаблон должен соответствовать моей команде

Попробуйте:

find ./ -name "configuration.php" -exec grep db_userXYZ /dev/null {} +

POSIX defined find -exec имя_программы [аргумент ...] {} + :

Если основное выражение прервано знак плюс, основной всегда оценивается как истина, а пути, для которых оценивается, должны быть объединены в наборы. Утилита имя_программы должен вызываться один раз для каждого набора агрегированных путевых имен. Каждый вызов должен начаться после того, как последний путь в наборе агрегированы и должны быть завершены до того, как утилита поиска завершит работу и перед тем, как первый путь в следующем наборе (если есть) будет агрегирован для этот первичный, но иначе не указано, происходит до, во время или после оценки других первичных выборов. Если любой вызов возвращает ненулевое значение в качестве статуса выхода, поиск Утилита должна возвращать ненулевой статус выхода. Аргумент, содержащий только два символа "{}" должны быть заменены набором агрегированные путевые имена, каждый из которых передается как отдельный аргумент вызываемой утилите в том же порядке, в котором она была агрегирована. В размер любого набора из двух или более путей должен быть ограничен таким образом, чтобы выполнение утилиты не приводит к ограничению системы {ARG_MAX} быть превышенным. Если более одного аргумента, содержащего только два символов "{}" присутствует, поведение не указано.

Если ваш grep поддерживает параметр -H ( -H не определяется POSIX grep ), вы можете использовать:

find ./ -name "configuration.php" -exec grep -H db_userXYZ {} +

1
11.07.2014, 22:52
2 ответа

Пусть читает команду для разделения.

read cmd arguments
case $cmd in
  compile)
    …
    ;;
esac
1
27.01.2020, 23:52
[

]Это должно работать в любой POSIX-совместимой оболочке:[

] [
case $cmd in
    "compile ccms"|"compile asws") compile
    ;;
    *) break
    ;;
esac
]
0
27.01.2020, 23:52

Теги

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