在 ubuntu 10.04 shell(cmd)中运行存储在文件中的 mysql 查询(按文件名降序排列)

在 ubuntu 10.04 shell(cmd)中运行存储在文件中的 mysql 查询(按文件名降序排列)

我有一个文件夹,里面有大约 40 个名称各异的 SQL 脚本,全部使用以下模式number description.sql。文件编号由2位数字组成,范围从01至40,但不包括该范围内的所有数字。

我想遍历该文件夹的文件并通过 mysql cmd 按照文件名的降序排列运行它们。

mysql cmd我怎样才能按照文件编号降序的顺序运行它们?谢谢。

答案1

如果你想按字典顺序升序运行脚本,你可以这样做

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

可以很容易地按降序列出文件 安装 zsh, 感谢O glob 限定符,但 bash 中没有相应的功能。在 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

相关内容