+
현재 작업 디렉터리의 모든 파일 이름에 나타나는 모든 문자를 공백 문자로 바꾸려면 어떻게 해야 합니까 ?
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
되고 사용 가능한 동일한 명령에 대해 이야기하고 있음 을 언급해야 합니다.prename
rename
ntzrmtthihu777의 답변.
답변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 here
sed 이름을 바꾸는 것과 같다고 생각할 수 있습니다.