이름 바꾸기: 디렉터리의 파일에서 마지막 X 문자를 제거합니다.

이름 바꾸기: 디렉터리의 파일에서 마지막 X 문자를 제거합니다.

youtube-dl을 통해 다양한 소스에서 다운로드한 수많은 동영상의 이름을 바꾸려고 합니다. 아시다시피 yt-dl은 파일 이름에 보기 코드를 추가합니다.

예를 들어

영상제목-dQw4w9WgXcQ.mp4

파일 이름에서 마지막 X 문자를 제거하는 프로그램이나 CLI 명령을 찾고 있습니다. 예시에서 숫자는 12자입니다(파일 확장자 .mp4 제외).

나는 그러한 명령을 검색해 보았지만 작동하는 것을 찾지 못했습니다. 또한 KReename을 시도했지만 "마지막 문자부터 시작하는 X 문자 제거"에 해당하는 기능을 찾을 수 없었습니다. 해당 기능을 사용했던 Windows 프로그램이 기억납니다.

이 작업을 수행하는 데 사용할 수 있는 "간단한" 명령이 있습니까? 또는 프로그램이나 KRename의 일부 설정입니다. PyRename을 시도했지만 운도 없습니다.

답변1

그리고prename(진주이름 바꾸기) 명령:

prename 's/(.*).{12}(\.mp4)/$1$2/' *.mp4

답변2

그리고 zsh:

autoload zmv # best in ~/.zshrc
zmv -n '(*)?(#c12).mp4' '$1.mp4'

(만족하면 삭제하세요 -n(모의 실행)).

답변3

이에 대해 생각하는 한 가지 방법은 마지막 16자(확장자 포함)를 제거하려는 것이므로 다음을 사용하는 것입니다.세게 때리다 매개변수 확장이것을하기 위해:

${parameter:offset:length}

    하위 문자열 확장. 최대로 확장하세요.length캐릭터의 가치parameter지정된 문자부터 시작offset. 만약에 parameter@, 첨자가 붙은 인덱스 배열@또는*또는 연관 배열 이름을 사용하는 경우 결과는 아래 설명과 같이 다양합니다. 만약에 length생략됨, 값의 하위 문자열로 확장됨parameter지정된 문자부터 시작offset값의 끝까지 확장됩니다.  length그리고offset산술 표현식입니다(참조:산술 평가[다음과 같은]).

    만약에offset값 끝에서 문자 오프셋으로 사용되는 0보다 작은 숫자로 평가됩니다.parameter. 만약에length값 끝에서 문자 오프셋으로 해석되는 0보다 작은 숫자로 평가됩니다.parameter여러 문자 대신 확장자는 문자 사이의 문자입니다.offset그리고 그 결과. 콜론과의 혼동을 피하기 위해 음수 오프셋은 콜론과 최소한 하나의 공백으로 구분되어야 합니다.:-확장.

음수에는 콜론 뒤에 공백이 필요하다는 점을 고려하면 다음과 같이 할 수 있습니다.

#!/bin/bash

for f in *.mp4; do
    mv -- "$f" "${f:0: -16}.mp4"
done

exit

먼저 실행한 다음 시험 실행에서 허용 가능한 결과가 나올 때 실행하여 이를 테스트할 수 있습니다 echo mv -- "$f" "${f:0: -16}.mp4". echo(부정적인 지원 참고length 는 비교적Bash에 최근 추가되었습니다. )

A Star is Born-dQw4w9WgXcQ.mp4 및  가 있는 경우 A Star is Born-foobar42quuxBAZ.mp4둘 다 이름이 변경됩니다 A Star is Born.mp4 (즉, "충돌"이 발생함). 원본 파일을 실행하면 mv두 번째 파일의 이름이 바뀌면 첫 번째 파일이 손상됩니다. mv -i이를 방지하기 위해 이것을 사용할 수도 있습니다 .

답변4

Thunar 일괄 이름 바꾸기 도구( thunar -B).

여기에 이미지 설명을 입력하세요.

KRename은 이 작업을 수행할 수 없습니다. KDE용으로 특별히 제작되었지만 독립형으로 사용할 수 있는 불완전한 Thunar 이름 바꾸기 포크가 있습니다.바이오닉 배치 이름 바꾸기"). 일부 기본 옵션이 누락되었습니다(설정 기억, 목록 항목 재정렬).


이 문제는 Thunar 파일 관리자 및 기타 xfce 도구와 함께 제공되는 Thunar renamer에 존재합니다. Thunar가 Plasma KDE의 기본 파일 관리자를 방해할 수 있습니다: 저는 다음을 사용합니다.이 솔루션.


추가 답변으로[1-[#length-12]]Krename의 옵션 중 하나:

이 옵션은 실제로 위치합니다. 파일 이름(라벨) -간단한 파일 이름(라벨) -파일 이름(떨어지다):맞춤 이름.

여기에 이미지 설명을 입력하세요.

마지막으로 사용한 옵션이 기억됩니다(krename을 다시 시작한 후).파일 이름(라벨) -고급 파일 이름(라벨) -주형(떨어지다).

여기에 이미지 설명을 입력하세요.

관련 정보