특별한 순서 없이 다양한 유형의 괄호가 포함된 아주 오래된 비디오 파일이 수천 개 있습니다. 나는 파일을 "정리"하려고 했습니다. 즉, 파일의 모든 대괄호와 문자열이 제거되고 빈 문자열로 효과적으로 대체되도록 파일 이름을 바꾸었습니다. 예는 다음과 같습니다
{xyz}<abc>actual_title[prev_suffix](suffix)some_other_text.mp4
대괄호는 올바르게 사용되었습니다. 즉, 중첩된 대괄호일 수는 있지만 {xyz<}abc>와 같은 파일 이름은 없습니다. 완전히 괄호로 명명된 파일은 없습니다. 항상 괄호가 없는 섹션이 있습니다. 또한 모든 괄호를 제거하면 두 파일의 이름이 정확히 같을 수도 있습니다. 이 경우 파일이 어떻게 다른지는 상관하지 않습니다.
내가 원하는 결과는
actual_titlesome_other_text.mp4
순진하게 말하면 각 대괄호 쌍에 대해 한 번씩 파일 이름을 여러 번 전달하면 쉽게 수행할 수 있지만 정규식을 구성하여 더 빠르게 수행할 수 있습니까?
답변1
사용진주의rename
:
rename -n 's/\{[^\}]+\}//g;s/<[^<]+>//g;s/\[[^\]]+\]//g;s/\([^\)]+\)//g' ./*actual*
출력이 만족스러우면 제거하십시오 -n
(일명).dry-run