Linux 쉘을 사용하여 " 문자를 삭제하여 파일 이름을 바꾸는 방법

Linux 쉘을 사용하여 " 문자를 삭제하여 파일 이름을 바꾸는 방법

다음과 같이 파일 이름에 큰따옴표가 포함된 파일이 많이 있습니다.

"This_is_a_long_filename_with_quotes".mp3

나는 리눅스 명령 rename을 사용하려고하는데 다음을 사용하여 밑줄을 쉽게 지울 수 있습니다.

rename 's/_//g' *

하지만 \"로 시도하면 아무 일도 일어나지 않습니다(변경 사항을 보려면 -n을 사용합니다).

rename -n 's/\"//g' *

아무것도 이름이 바뀌지 않았습니다

감사해요!

답변1

파일 이름에 "큰 따옴표"가 있습니다.

“Tokyo_String_Quartet-Beethoven_-Late_String_Quartets-CD1-11-Quartet”.mp3 

rename대신에 삽입된 명령을 사용해 보십시오 ."

또는 사용하지 않고 rename다음 옵션을 수행할 수 있습니다 sed.

for f in *.mp3
    do
        new=$(echo $f | sed -E 's/[“”]//g')
        mv $f $new
    done

모든 배치 셸 작업과 마찬가지로 mv원본 폴더의 백업에서 테스트/실행하는 것이 가장 안전합니다... 처음 시도할 때 echo대신 넣어 테스트할 수 있습니다.mv

답변2

작은 guote 내부에서 이스케이프 큰따옴표를 이스케이프할 필요가 없습니다.

rename -n 's/"//g' *

답변3

나는 이것을 Bash에서 할 수 있었습니다:

file=$(ls | grep \")
newName=$(echo $file | sed 's/\"//g')
mv $file $newName

관련 정보