自用 Linux 脚本存档

自用 Linux 脚本存档

vate_room 42 2024-07-16

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