나는 몇 달 동안 이 일을 하려고 노력해 왔지만 제대로 작동할 수 없습니다. 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
대신 쉘을 사용하겠습니다 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