составьте sql для выполнения анализа результатов поиска + exec - PullRequest
0 голосов
/ 10 марта 2020

У меня есть несколько папок, и я хочу создать базу данных для каждой папки (получая только имя каталога, используя базовое имя). Я пытался составить такое предложение, используя find + exe c безрезультатно.

find /path/to/folder/namedb -maxdepth 1 -mindepth 1 -type d -exec 'mysql -u root -pMyPass -e create database if not exists basename {}' \;

что я получаю:

mysql -u root -pMyPass -e create database if not exists basename /path/to/folder/media
mysql -u root -pMyPass -e create database if not exists basename /path/to/folder/news
mysql -u root -pMyPass -e create database if not exists basename /path/to/folder/security

что я ожидаю:

mysql -u root -pMyPass -e create database if not exists media
mysql -u root -pMyPass -e create database if not exists news
mysql -u root -pMyPass -e create database if not exists security

1 Ответ

0 голосов
/ 10 марта 2020

Используйте bash -c с find ... -exec ...:

find /path/to/folder/namedb -maxdepth 1 -mindepth 1 -type d \
  -exec bash -c 'mysql -u root -pMyPass -e create database if not exists "$1"' _ $(basename {}) \;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...