我正在尝试创建一个 bash 脚本,将下载的动漫文件移动到没有剧集编号的文件夹中。
文件名/文件列表例如:
[SubsHorrible] name of show - 00 [1080p].mkv
[SubsHorrible] name of show - name2 of show - 00 [1080p].mkv
[SubsHorrible] name of show - 000 [1080p].mkv
根据“节目名称”移动到新文件夹
[SubsHorrible] name of show
[SubsHorrible] name of show - 00 [1080p].mkv
[SubsHorrible] name of show - 01 [1080p].mkv
[SubsHorrible] name of show - name2 of show
[SubsHorrible] name of show - name2 of show - 00 [1080p].mkv
[SubsHorrible] name of show - name2 of show - 01 [1080p].mkv
[SubsHorrible] name of show
[SubsHorrible] name of show - 100 [1080p].mkv
[SubsHorrible] name of show - 101 [1080p].mkv
任何帮助将不胜感激!
答案1
由于您没有提供任何脚本来提供帮助,请使用此行从文件列表中创建文件夹名称:
- 创建变量(或从文件名列表文件读取):
filename="[SubsHorrible] name of show - 00 [1080p].mkv"
然后获取需要的部件:
echo ${filename" "-*}
结果:
[SubsHorrible] name of show
,要创建文件夹,请执行echo ${filename%%" "-*} | xargs -d '\n' mkdir
解释::${filename%" "-*}
从文件名后面删除直到点的所有内容" "-
,然后返回其余所有内容。
对于给定的样本:
[SubsHorrible] name of show - 00 [1080p].mkv
[SubsHorrible] name of show - name2 of show - 00 [1080p].mkv
[SubsHorrible] name of show - 000 [1080p].mkv
返回:
[SubsHorrible] name of show
[SubsHorrible] name of show - name2 of show
[SubsHorrible] name of show
使用这个简单的脚本来创建文件夹:
#!/usr/bin/env bash
while IFS= read -r var
do
mkdir "${var%" "-*}"
done < "$1"
用法:
./createfolder.sh list
将其整合到更大的脚本中。
- 请参阅此内容以获取更多帮助:
https://www.cyberciti.biz/tips/bash-shell-parameter-substitution-2.html