几个月来我一直在尝试这样做,但我无法让它发挥作用。我正在尝试在 bash 中做到这一点。所有文件都在linux机器上,所以bash
我猜?
我想要做的是:对于目录中的所有文件,按照以下标准重命名它们:
- 如果文件名中包含方括号,请删除方括号并包括数字
[312646416198]
- 如果文件有年份
(2018)
,则保留该年份(并非所有文件都有) - 如果文件中的括号中只有一个数字,则
(1)
删除括号和数字
根据文件名的第一部分创建一个文件夹(例如第一个连字符“-”之前的所有内容),然后将该文件移动到创建的文件夹中。
例如,经过一些处理后,以下名称应该看起来像这样(理想情况下)。有些东西会被放置错误,比如标题出现在作者之前,因此新文件夹将以标题命名,而不是作者,但我可以忍受这一点,只有一小部分是这样命名的。
所以这:
The Brotherhood of the Rose - David Morrell.epub
Abbi Glines - Bad for You (2014) [9781481420761] (1).epub
Kristin Hannah - The Great Alone (2018) [9781250165619].epub
Stephanie Dray, Laura Kamoie - America's First Daughter - A Novel (2016) [9780062347268] (1).epub
Terence Hanbury White - The Once and Future King (1987) [9780441627400] (1).epub
变成这样:
The Brotherhood of the Rose
The Brotherhood of the Rose - David Morrell.epub
Abbi Glines
Abbi Glines - Bad for You (2014).epub
Kristin Hannah
Kristin Hannah - The Great Alone (2018).epub
Stephanie Dray, Laura Kamoie
Stephanie Dray, Laura Kamoie - America's First Daughter - A Novel (2016).epub
Terence Hanbury White
Terence Hanbury White - The Once and Future King (1987).epub
答案1
这可能会有用:
$ cat epub-cleanup.sh
#! /bin/bash
for i in *.epub; do
mv -iv "$i" "$(echo "$i" | sed -r 's/\[[0-9]+\]//;s/\([0-9]\)//;s/[ ]*.epub/.epub/')"
done
- 删除 [0123456789] 的单个实例
- 删除 (1) 的单个实例
- 清除文件扩展名之前的尾随空格
答案2
我会使用zsh
shell 而不是bash
:
set -o extendedglob
for file (*' - '*.epub) {
newfile=${file// #(\[<->\]|\((<->~<1000-2020>)\))}
dir=${newfile%% - *}
mkdir -p -- $dir &&
mv -i -- $file $dir/$newfile
}
(number)
仅当该数字不在范围内时才删除s 1000-2020
。
$ tree
.
├── Abbi Glines - Bad for You (2014) [9781481420761] (1).epub
├── Kristin Hannah - The Great Alone (2018) [9781250165619].epub
├── Stephanie Dray, Laura Kamoie - America's First Daughter - A Novel (2016) [9780062347268] (1).epub
├── Terence Hanbury White - The Once and Future King (1987) [9780441627400] (1).epub
└── The Brotherhood of the Rose - David Morrell.epub
0 directories, 5 files
$ zsh ~/that-script
$ tree
.
├── Abbi Glines
│ └── Abbi Glines - Bad for You (2014).epub
├── Kristin Hannah
│ └── Kristin Hannah - The Great Alone (2018).epub
├── Stephanie Dray, Laura Kamoie
│ └── Stephanie Dray, Laura Kamoie - America's First Daughter - A Novel (2016).epub
├── Terence Hanbury White
│ └── Terence Hanbury White - The Once and Future King (1987).epub
└── The Brotherhood of the Rose
└── The Brotherhood of the Rose - David Morrell.epub
5 directories, 5 files