我有一个文件夹,里面有大约 40 个名称各异的 SQL 脚本,全部使用以下模式number description
.sql
。文件编号由2位数字组成,范围从01至40,但不包括该范围内的所有数字。
我想遍历该文件夹的文件并通过 mysql cmd 按照文件名的降序排列运行它们。
mysql cmd
我怎样才能按照文件编号降序的顺序运行它们?谢谢。
答案1
如果你想按字典顺序升序运行脚本,你可以这样做
for x in *.sql; do
mysql <"$x"
done
可以很容易地按降序列出文件嘚 , 感谢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