터미널에서 파일 이름을 일괄 바꾸는 방법 - 파일 이름의 텍스트를 끝에서 앞으로 이동

터미널에서 파일 이름을 일괄 바꾸는 방법 - 파일 이름의 텍스트를 끝에서 앞으로 이동

최근에 wget을 사용하여 파일을 다운로드하기 시작했습니다.

내 파일을 조작하기 위해 ubuntu 16 mate를 사용하고 있습니다.

다음과 같이 다운로드한 파일 이름에 저장할 특정 정보를 포함하는 사용자 정의 URL을 만듭니다.

  http://website.com/file.txt?title_Three_little_pigs_user_spinach_

Firefox와 Downthemall을 사용하여 URL을 다운로드하고 이름 바꾸기 마스크를 사용하여 파일 이름에 쿼리 문자열을 추가하면 다음을 얻을 수 있습니다.

  Three_little_pigs_user_spinach_file.txt

wget을 사용하여 동일한 URL(이름 바꾸기 마스킹을 지원하지 않는 것 같음)을 다운로드하면 다음과 같이 끝납니다.

  file.txt@title_Three_little_pigs_user_spinach_

다음과 같이 파일 이름을 일괄적으로 바꾸는 방법이 있습니다.

앞으로:

  file.txt@title_Three_little_pigs_user_spinach_

뒤쪽에:

  title_Three_little_pigs_user_spinach_file.txt

@ 뒤의 텍스트를 처음으로 이동한 다음 @를 제거하고 싶습니다.

우분투의 터미널에 이름을 바꾸고 싶은 파일이 많이 있습니다. 이것을 bash 스크립트에 추가할 수 있다면 좋을 것입니다.

우분투와 Windows를 실행하지만 이런 방식으로 파일 이름을 바꿀 수 있는 Windows 프로그램을 찾지 못했습니다.

미리 감사드립니다.

답변1

Ubuntu 16.04는 Perl이 제공하는 원래 버전 prename과 최신 대체 버전 과 함께 제공되어야 하며 rename, 둘 중 하나는 sed표준 유사한 대체 표현식과 함께 작동 해야 합니다.

prename -n 's/(.*)@(.*)/$2$1/' *@*

또는

rename -n 's/(.*)@(.*)/$2$1/' *@*

mmv저장소에서 설치하여 사용할 수도 있습니다.

mmv -n "*@*" "#2#1"

모든 경우에 이것은 -n테스트를 위한 no-op 플래그입니다. 원하는 대로 작동할 것이라는 확신이 들면 제거하십시오.

관련 정보