파일 이름에 나타나는 문자 바꾸기 [중복]

파일 이름에 나타나는 문자 바꾸기 [중복]

+현재 작업 디렉터리의 모든 파일 이름에 나타나는 모든 문자를 공백 문자로 바꾸려면 어떻게 해야 합니까 ?

Linux 명령이 있다는 것을 알고 있지만 rename이 명령을 사용하여 이 작업을 수행하는 방법을 잘 모르겠습니다.

예:

초기 + 기독교인 -> 초기 기독교인

답변1

노력하다:

rename -n 'y/+/ /' *

y한 세트의 문자를 다른 세트로 변환하는 데 사용됩니다. 다음의 예를 고려해보세요.man rename:

To translate uppercase names to lower, you'd use
       rename 'y/A-Z/a-z/' *

표현식을 테스트하는 데 사용됩니다 -n. 결과가 만족스러우면 rename결과 없이 실행하여 실제 이름 바꾸기를 수행할 수 있습니다.

rename나는 Debian 기반 Linux 배포판에서 호출 perl-rename되고 사용 가능한 동일한 명령에 대해 이야기하고 있음 을 언급해야 합니다.prenamerenamentzrmtthihu777의 답변.

답변2

파일 이름 바꾸기를 사용할 수도 있습니다 mv. 복사하여 터미널에 붙여넣거나 스크립트로 변환하세요.

for f in *; do
    # check if its a file
    if [[ -f "$f" ]]; then
        new_name=$(echo "$f" | sed 's/+/ /g')
        # replace this echo with mv
        echo "$f" "$new_name"
    fi
done

결과가 만족스러우면 두 번째 결과를 교체하세요 echo. mv루프가 실행되는 디렉터리의 모든 파일 이름이 바뀌기 때문입니다.

답변3

나는 개인적으로 이와 같은 작업에 perl-rename을 사용하는 것을 좋아합니다. 예를 들어, 나는 perl-rename 's:_: :g' file_name_here모든 밑줄을 공백으로 변경하여 file name heresed 이름을 바꾸는 것과 같다고 생각할 수 있습니다.

관련 정보