파일 이름을 바꾸고 확장명 앞의 마지막 X개 문자를 대괄호로 캡슐화합니다.

파일 이름을 바꾸고 확장명 앞의 마지막 X개 문자를 대괄호로 캡슐화합니다.

저는 보관 목적으로 YouTube 사용자의 채널 전체를 다운로드하기 위해 youtube-dl을 사용해 왔습니다. 저는 동영상 제목, 하이픈, 11자 동영상 ID, 마지막으로 파일 확장자를 사용하여 동영상 이름을 지정하는 기본 명명 패턴을 사용해 왔습니다.

예를 들어

title of the video - (an example)-oHg5SJYRHA0.mp4

향후 다운로드를 위해 하이픈을 제거하고 동영상 ID를 대괄호 안에 넣었습니다. 문제는 새로운 명명 체계를 얻기 위해 다시 다운로드하는 데 대역폭을 낭비하고 싶지 않은 이전 명명 체계를 따르는 수백 개의 비디오가 이미 있다는 것입니다.

".mp4" 앞에 "]"가 배치되고 "].mp4" 앞에 11개의 공백/문자가 하이픈으로 "["로 대체되도록 다양한 길이의 파일 이름을 바꿀 수 있습니까?

예를 들어

title of the video - (an example)[oHg5SJYRHA0].mp4

[편집] Linux 및/또는 FreeNAS/BSD에서 작동하는 솔루션을 선호한다는 것을 지정하는 것을 잊었습니다.

답변1

Linux에서는 다음을 사용할 수 있습니다.이름 바꾸기다음과 같은 명령:

rename 's/-\w{11}(?=\.mp4$)/[$&]/' *.mp4

정규식 설명:

-           # a hyphen
\w{11}      # 11 word characters
(?=         # positive lookahead, make sure we have after:
  \.mp4     # a dot followed by mp4
  $         # end of string
)           # end lookahead

대사:

[           # opening square bracket
$&          # the whole match (i.e. 11 characters)
]           # closing squarre bracket

11자가 단어 문자가 아닐 수 있는 경우 다음을 사용하십시오.

rename 's/-\K.{11}(?=\.mp4$)/[$&]/' *.mp4

개행 문자를 제외한 모든 문자 와 .일치합니다.

답변2

한 번만 사용하도록 권장하는 타사 도구를 사용하는 것이 마음에 들지 않는다면 다음을 권장합니다.고급 이름 바꾸기, 휴대 가능하고 무료입니다.

그렇지 않으면 powershell을 사용할 수 있습니다.이 설명당신이 알아야 할 모든 것을 알려줍니다. 막히면 알려주세요.

관련 정보