如何使用bash脚本对具有复杂文件名的文件进行分组



我被卡住了。

终极目标-使用FFMPEG将多个MP4文件连接为单个MP4文件,以减少文件数量,并使其更易于在视频编辑器中进行管理。

我从安全系统收集的文件有一个独特的命名约定。在每个文件名中,都有一些标记来表示不同的相机角度。以下是其中一个文件的示例:

7845582F4FA9_0_rotating_2022-06-01T17.13.47-07.00.mp4

数字>>小时<1th>分钟<2th>秒TZ_2022-06-01<13><27>>-07.00.mp4[/tr>
前缀 后缀 类型1日期
7845582F 4FA9 _0_ 旋转17

这里有一个示例Bash脚本来实现这一点:

#!/bin/bash
loop_over_suffixes() {
for i in *$1*; do
local suffix=($suffix ${i:7:4})
done
for j in ${suffix[@]}; do
echo "Loop over suffix: ${suffix[j]}"
ls *$j*$1*
# Do logic here
done
}
loop_over_suffixes '2022-06-01'

你可以用你想要的任何日期调用函数。如果你想动态地通过今天的日期,你可以运行:

loop_over_suffixes $(date +"%Y-%m-%d")

只要把你的逻辑放在# Do logic here部分所在的地方。ls命令应该自动按数字和时间排序。

最新更新