다음과 같이 파일 이름을 바꾸려고합니다.
for file in *;
do
mv -i "$file" "$(echo "$file" | sed -e 's/[^A-Za-z0-9._-]/_/g')";
done
그러나이 sed
명령은 모든 공백을로 바꿉니다 _
.
sed
지정된 문자와 함께 공백을 포함하도록 명령을 편집하는 방법은 무엇입니까? 사용하려고 \s
했지만 작동하지 않습니다 ...
편집 :
예를 들어 파일의 trip: hill
이름을 바꿔야 trip_ hill
하지만 위의 명령으로 파일을 만듭니다 trip__hill
.
리눅스에서 Mac으로 파일을 옮기고 있습니다. 그러나 어떤 이유로 Mac 시스템은 모든 파일 이름을 읽을 수 없으므로 파일 이름을 바꾸려고합니다. 위의 명령에 공백을 추가해도 작동하지 않습니다. 그리고 당신은 맞습니다 : 지정된 문자를 제외한 모든 문자를 '_'로 바꾸고 싶습니다. 그리고 나는 공백 문자를 포함시키는 방법을 모른다.