Запустите mysql-запросы в оболочке ubuntu 10.04 (cmd), хранящейся в файлах (порядок сортировки по имени файла)

У меня есть папка, содержащая около 40 SQL-скриптов с разными именами. Все они используют шаблон number description .sql. Номер файла состоит из 2 цифр и идет от 01 до 40, не все номера в этом диапазоне включены.

Я хотел бы перебрать эту папку с файлами и запустить их через mysql cmd в порядке имен файлов DESC.

Как я могу запустить их все через mysql cmd в порядке убывания номера файла? Спасибо.

3
задан 18 July 2012 в 23:37

1 ответ

Если бы Вы хотели запустить скрипты в возрастающем лексикографическом порядке, то Вы могли бы сделать

for x in *.sql; do
  mysql <"$x"
done

Список файлов в порядке убывания может быть сделан легко в zsh Install zsh, благодаря O спецификатор шарика, но в ударе нет никакой соответствующей функции. При подсказке zsh:

for x in *.sql(On); do
  mysql <"$x"
done

Между прочим, если бы Ваши числа не имели продвижения 0, то Вы могли бы использовать (nOn) здесь, к виду 9 foo.sql прежде 10 bar.sql.

Только Используя программы, которые находятся в стандартной установке (плюс mysql), можно перечислить файлы, отсортировать их, как желаемый с sort (или непосредственно обратный порядок с tac), и выполните итерации по результату.

for x in *.sql; do echo "$x"; done |
tac |
while IFS= read -r script; do mysql <"$script"; done
3
ответ дан 18 July 2012 в 23:37

Другие вопросы по тегам:

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