이름 바꾸기, 새 이름으로 폴더 만들기

이름 바꾸기, 새 이름으로 폴더 만들기

나는 몇 달 동안 이 일을 하려고 노력해 왔지만 제대로 작동할 수 없습니다. 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
  1. [0123456789]의 단일 인스턴스 삭제
  2. (1)의 단일 인스턴스 삭제
  3. 파일 확장자 앞의 공백 제거

답변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

관련 정보