基于时间字符串名称的bash排序数组
我有目录中的文件列表,其中文件名是hh mm ss格式的时间基于时间字符串名称的bash排序数组,bash,shell,Bash,Shell,我有目录中的文件列表,其中文件名是hh mm ss格式的时间 05-31-04.mp4 05-32-04.mp4 05-34-04.mp4 05-33-04.mp4 05-30-00.mp4 我需要根据文件名对文件进行排序 像 现在我有下面的代码来列出这个文件 x=$(find . -name "*.mp4" -printf "%f\n") for file in $x; do echo "File -> $file"
05-31-04.mp4
05-32-04.mp4
05-34-04.mp4
05-33-04.mp4
05-30-00.mp4
我需要根据文件名对文件进行排序
像
现在我有下面的代码来列出这个文件
x=$(find . -name "*.mp4" -printf "%f\n")
for file in $x; do
echo "File -> $file"
那根本不是一个数组
x
是一个简单的字符串变量,在它上面循环而不引用它将在空白处分割它
如果文件名中包含空格或其他shell元字符,则会出现问题,但如果简单文件名具有代表性,则不会出现这种情况。那样的话,就<代码>排序
x=$(查找。-name“*.mp4”-printf“%f\n”|排序)
printf“文件->%s\n”$x
不过,不引用字符串变量会带来一些问题。可能确实使用了数组
readarray-d''x<那根本不是数组x
是一个简单的字符串变量,在它上面循环而不引用它将在空白处分割它
如果文件名中包含空格或其他shell元字符,则会出现问题,但如果简单文件名具有代表性,则不会出现这种情况。那样的话,就<代码>排序
x=$(查找。-name“*.mp4”-printf“%f\n”|排序)
printf“文件->%s\n”$x
不过,不引用字符串变量会带来一些问题。可能确实使用了数组
readarray-d''x<printf'%s\n'*.mp4
?如果所有文件都在一个目录中,只需使用标准文件名扩展<代码>用于*.mp4中的文件;是否…
Yes所有文件都在同一目录中。printf“%s\n”*.mp4
?如果所有文件都在一个目录中,只需使用标准文件名扩展<代码>用于*.mp4中的文件;是否…是所有文件都在同一目录中。
x=$(find . -name "*.mp4" -printf "%f\n")
for file in $x; do
echo "File -> $file"