일괄 이름 바꾸기 작업에서 파일 이름의 숫자를 어떻게 이동합니까?


13

지난 몇 시간 동안 파일 이름을 바꾸는 방법을 알아 내려고 노력했습니다.

다음과 같은 2000 파일이 있습니다.

file.1.pdb
file.2.pdb
file.3.pdb

이 파일들의 이름을 다음과 같이 바꾸고 싶습니다 :

file.pdb.1
file.pdb.2
file.pdb.3

bash 을 의미하지 않습니까?
avazula

4
@avazula 아니오이 기사를 읽으십시오 : en.wikipedia.org/wiki/Batch_renaming
Ali Razmdideh

@PerlDuck yes;)
Ali Razmdideh


2
유권자 여러분, [batch-rename] 태그에 하나의 질문 만 필요하다고 생각하십니까? 링크 된 게시물에 실제로 사용하는 아이디어를 제외 하고이 질문의 작업에 도움이되는 것이 rename있습니까? 일괄 이름 바꾸기 질문에 특정 세부 정보가있는 경우 특정 답변제공 해야 합니다.
Zanna

답변:


15

rename설치 한 경우 사용할 수 있습니다

rename -n 's/(\.\d+)\.pdb$/.pdb$1/' *.pdb   # just watch what WOULD happen
rename    's/(\.\d+)\.pdb$/.pdb$1/' *.pdb   # actually rename the files

명령 rename을 통해 설치할 수 있습니다

sudo apt install rename

11

mmv(와일드 카드 패턴으로 여러 파일 이름 바꾸기) 통해 쉽게 이해할 수 있습니다.

mmv '*.*.*' '#1.#3.#2' *.pdb

또는 zmvzsh쉘; 이름을 바꿀 수있는 모듈입니다. ZMV 예 참조 :

zmv -w '*.*.*' '$1.$3.$2' *.pdb

3
모두 mmv와는 zmv나에게 오히려 이국적인 보인다. 그들이 무엇을하고 무엇을하는지 조금씩 설명해 주시겠습니까?
PerlDuck

2
맨 페이지와 예제에 대한 링크를 추가했습니다.
αғsнιη

mmv꽤 멋지다. rename이름 일치 측면에서는 유연성이 떨어지지 만, 보다 이러한 종류의 이름 변경에 더 적합합니다 .
JAB

11

펄 사용하기 rename:

rename -n 's/(\.\d+)(\.pdb)/$2$1/' *.pdb

빠른 설명 :

  • *.pdb로 끝나는 모든 파일을 일치시킵니다 .pdb. (껍질로 완성)
  • (\.\d+)리터럴 점을 찾은 다음 하나 이상의 10 진수를 찾습니다. Parens는 일치 그룹을 만듭니다.
  • $2$1 첫 번째와 두 번째 일치 그룹을 반대로 바꿉니다.
  • -n동작 없음 (시뮬레이션). 출력이 양호하면이 플래그없이 명령을 다시 실행하십시오.

1
LOL. 같은 생각입니다. 48 초 더 빨랐습니다.
PerlDuck

1
@ PerlDuck Lol, 예, 같은 생각입니다. 대답도 꽤 잘 보완됩니다. 설치를 다루고 구문을 다루겠습니다.
wjandrea

7

이 스크립트를 사용할 수 있습니다 :

for i in `seq 1 2000`; do
mv file.$i.pdb file.pdb.$i
done

또는이 복사 붙여 넣기 친화적 인 명령 :

for i in `seq 1 2000`; do mv file.$i.pdb file.pdb.$i; done

위의 명령을 사용하려면 모든 2000 파일을 하나의 폴더에 넣고 해당 디렉토리에서 터미널을 연 다음 위의 명령을 실행하십시오.


5

최근 기본 파일 관리자 인 노틸러스가 배치 이름 바꾸기 대화 상자를 받았습니다. 원하는 것을 할만큼 강력하지는 않습니다. 그러나 운 좋게도 설치할 수있는 대체 파일 관리자 인 thunar가 있습니다. Thunars 이름 바꾸기 대화 상자를 사용하면 GUI를 사용하여 원하는 작업을 수행 할 수 있습니다.

먼저 설치 thunar :

sudo apt install thunar

thunar를 시작하고 파일이있는 디렉토리로 이동하십시오. 그런 다음 모두 선택하십시오. 를 누릅니다 F2.

대화 상자가 열리면 모든 파일을 다시 선택하십시오. 모드를 "검색 및 바꾸기"및 "이름 및 접미사"로 변경하십시오. "정규 표현식"을 확인하십시오. 이제 다음을 검색 및 바꾸기 패턴으로 사용하십시오.

file\.(.+)\.pdb

file.pdb.$1

마지막으로 이름 바꾸기 버튼을 클릭하십시오.

이 방법의 장점은 실제로 이름을 변경하기 전에 어떤 일이 발생하는지 시각적으로 미리 볼 수 있다는 것입니다.

thunar 이름 바꾸기 대화 상자


1
당신은 대부분의 프로그램으로 명령을 앞에 붙여 영어 메시지를 인쇄 할 수 있습니다 LC_MESSAGES=POSIX예를 들어, LC_MESSAGES=POSIX free. 기본 구성에서 Nautilus와 같은 영구 응용 프로그램의 경우 이전 인스턴스를 nautilus -q먼저 종료해야하지만 그래픽 응용 프로그램에서도 동일하게 작동합니다 .
David Foerster

@DavidFoerster를 언급 해 주셔서 감사합니다. 이미지가 교체되었습니다.
Sebastian Stark

3

당신은 사용할 수 있습니다 rename에서 util-linux(명령이 호출이를위한 rename.ul우분투에서) :

rename.ul .pdb '' *
rename.ul "file." "file.pdb." *

먼저 .pdb확장을 끝에서 제거한 다음 다시 중간에 삽입합니다.


1
정말 멋진. 나는 몰랐다 rename.ul. 이 구문은 예상치 못한 내용이지만 실제로 광고하는 방식으로 작동합니다. 또한 : -n(터치하지 말고 알려주십시오) 스위치도 있습니다.
PerlDuck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.