一波三折的批量重命名脚本 (2)

543次阅读
没有评论

本以为之后只需要加入定时任务是个很简单的事,但竟然还是让我憋出了个 (2)……

定时任务本身很简单, cron -e 就行了,但是可能是这 NAS 系统(UGOS Pro)的限制,需要用 sudo cron -e -u username 来完成

不过也无所谓,定好任务每小时执行一次,但之后看文件一直也没移动。以为还是系统限制了 cron 的原因,用命令 grep CRON /var/log/syslog 查了一下,有记录,单纯是没执行成功

试了下直接执行脚本,失败,提示 line 7: syntax error: unexpected end of file

以为是命令漏写了什么,但是逐行复制出来却都能正常执行

不对啊!我这文件只有 6 行啊,高度怀疑是文件格式问题了

用 vi 打开脚本文件,:set ff 一看,果然 format 是 dos。这不行,用 :set ff=unix 把文件格式转成 unix,顺便给 mv 加上 -b 参数以备移动目标有同名文件时做个备份,保存退出。最后完整的脚本大概是这样

#!/bin/bash

ls /volume1/downloads/anime | grep -e '^\[ANi\] 怪人的沙拉碗 \- [0-9][0-9] \[1080P\]\[Baha\]\[WEB\-DL\]\[AAC AVC\]\[CHT\]\.mp4$' | while read line; do mv -b /volume1/downloads/anime/"$line" /volume1/media/anime/"怪人的沙拉碗"/$(echo $line | sed -e 's/\[ANi\] 怪人的沙拉碗 \- /S01E/' -e 's/ \[1080P\]\[Baha\]\[WEB\-DL\]\[AAC AVC\]\[CHT\]//'); done
ls /volume1/downloads/anime | grep -e '^\[ANi\] 夜晚的水母不會游泳 \- [0-9][0-9] \[1080P\]\[Baha\]\[WEB\-DL\]\[AAC AVC\]\[CHT\]\.mp4$' | while read line; do mv -b /volume1/downloads/anime/"$line" /volume1/media/anime/"夜晚的水母不会游泳"/$(echo $line | sed -e 's/\[ANi\] 夜晚的水母不會游泳 \- /S01E/' -e 's/ \[1080P\]\[Baha\]\[WEB\-DL\]\[AAC AVC\]\[CHT\]//'); done
ls /volume1/downloads/anime | grep -e '^\[ANi\] 轉生為第七王子,隨心所欲的魔法學習之路 \- [0-9][0-9] \[1080P\]\[Baha\]\[WEB\-DL\]\[AAC AVC\]\[CHT\]\.mp4$' | while read line; do mv -b /volume1/downloads/anime/"$line" /volume1/media/anime/"转生为第七王子,随心所欲的魔法学习之路"/$(echo $line | sed -e 's/\[ANi\] 轉生為第七王子,隨心所欲的魔法學習之路 \- /S01E/' -e 's/ \[1080P\]\[Baha\]\[WEB\-DL\]\[AAC AVC\]\[CHT\]//'); done
ls /volume1/downloads/anime | grep -e '^\[ANi\] 為美好的世界獻上祝福!3 \- [0-9][0-9] \[1080P\]\[Baha\]\[WEB\-DL\]\[AAC AVC\]\[CHT\]\.mp4$' | while read line; do mv -b /volume1/downloads/anime/"$line" /volume1/media/anime/"为美好的世界献上祝福!"/$(echo $line | sed -e 's/\[ANi\] 為美好的世界獻上祝福!3 \- /S03E/' -e 's/ \[1080P\]\[Baha\]\[WEB\-DL\]\[AAC AVC\]\[CHT\]//'); done
ls /volume1/downloads/anime | grep -e '^\[Nekomoe kissaten&LoliHouse\] GIRLS BAND CRY \- [0-9][0-9] \[WebRip 1080p HEVC\-10bit AAC ASSx2\]\.mkv$' | while read line; do mv -b /volume1/downloads/anime/"$line" /volume1/media/anime/"GIRLS BAND CRY"/$(echo $line | sed -e 's/\[Nekomoe kissaten&LoliHouse\] GIRLS BAND CRY \- /S01E/' -e 's/ \[WebRip 1080p HEVC\-10bit AAC ASSx2\]//'); done
ls /volume1/downloads/anime | grep -e '^\[ANi\] 蔚藍檔案 The Animation \- [0-9][0-9] \[1080P\]\[Baha\]\[WEB\-DL\]\[AAC AVC\]\[CHT\]\.mp4$' | while read line; do mv -b /volume1/downloads/anime/"$line" /volume1/media/anime/"蔚蓝档案 动画版"/$(echo $line | sed -e 's/\[ANi\] 蔚藍檔案 The Animation \- /S01E/' -e 's/ \[1080P\]\[Baha\]\[WEB\-DL\]\[AAC AVC\]\[CHT\]//'); done
ls /volume1/downloads/anime | grep -e '^\[Nekomoe kissaten&LoliHouse\] Shuumatsu Train Doko e Iku \- [0-9][0-9] \[WebRip 1080p HEVC\-10bit AAC ASSx2\]\.mkv$' | while read line; do mv -b /volume1/downloads/anime/"$line" /volume1/media/anime/"末日列车去哪里?"/$(echo $line | sed -e 's/\[Nekomoe kissaten&LoliHouse\] Shuumatsu Train Doko e Iku \- /S01E/' -e 's/ \[WebRip 1080p HEVC\-10bit AAC ASSx2\]//'); done

再尝试,成功

这下一波三折大概是折完了

正文完
 0