Linux 脚本存档
移动媒体到Season 文件夹
(媒体文件削刮规范化)
#!/bin/bash
# 遍历当前目录
for dir in */; do
# 移除斜杠得到目录名
dir_name="${dir%/}"
echo "$dir_name"
# 计算目录中的文件数量
file_count=$(ls -A "$dir" 2>/dev/null | wc -l)
# 如果文件数量大于10,则创建Season 1文件夹并移动文件
if [ "$file_count" -gt 10 ]; then
echo "Moving files in $dir_name to Season 1 folder"
mkdir -p "$dir_name/Season 1"
mv "$dir_name"/* "$dir_name/Season 1/"
fi
done
绅士收藏夹2.0 改名
把视频改名成对应的nfo文件名
#!/bin/bash
# 检查是否传入了'fake'参数
if [[ "$1" == "fake" ]]; then
echo "模拟运行模式:将会显示重命名操作,但不会实际执行。"
fake_run=true
else
fake_run=false
fi
# 遍历当前目录下的所有NFO文件
for nfo_file in *.nfo; do
# 使用NFO文件名生成一个基于关键信息的模糊匹配模式
match_pattern=$(echo "$nfo_file" | perl -pe 's/\[.*?\]//g' | sed -E 's/\.nfo$//' |sed -E 's/^[[:space:]]+|[[:space:]]+$//g' )
# 查找与模糊匹配模式相匹配的MP4文件
#mp4_file=$(ls | grep "$match_pattern" | grep '.mp4$')
mp4_file=$(find . -maxdepth 1 -type f -name "*${match_pattern}*.mp4")
# 如果找到了相匹配的MP4文件
if [ ! -z "$mp4_file" ]; then
# 生成新的MP4文件名,基于NFO文件名但保持MP4扩展名
new_mp4_filename="${nfo_file%.*}.mp4"
# 根据模式(真实运行或模拟运行)执行重命名
if [ "$fake_run" = true ]; then
echo "模拟运行: '$mp4_file' >>> '$new_mp4_filename'"
else
echo "正在重命名: '$mp4_file' >>> '$new_mp4_filename'"
mv "$mp4_file" "$new_mp4_filename"
fi
else
echo "没有找到匹配的MP4文件:'$nfo_file'"
fi
done