Automator에서 파일 이름의 앞 / 뒤 공백을 어떻게 제거 할 수 있습니까? 이름을 적절하게 바꿉니다. 이제

내 아내는 백업 외장 스토리지에 파일을 저장할 때 파일의 이름을 지루하게 바꾸 었으므로 필자는이를 위해 자동화 프로그램을 사용하여 조사했습니다. 이제는 자동화 폴더를 사용하여 파일을 삭제하고 파일의 이름을 적절하게 바꿉니다.

이제 파일에 공백 및 / 또는 후행 공백이 포함될 수있는 상황에 직면 해 있습니다. 공백을 어떻게 간단하게 줄일 수 있습니까?

필자는 AppleScript를 사용한 적이 없지만 쉘 스크립팅에 능숙합니다.이 작업을 수행 할 쉘 스크립트를 작성할 수 있습니까? 누군가가 올바른 방향으로 나를 가리킬 수 있다면 AppleScript를 제공 할 것입니다.



답변

for f in "$@"; do new="$(echo -n "$f" | sed -E 's|/$||;s| +$||;s|^ +||;s|/ +([^/]+$)|/\1|;s| +(\.[^.][a-zA-Z0-9.]*)$|\1|g')"; mv "$f" "$new"; echo "$new"; done

(으로 붙여 넣기 셸 스크립트 실행 행동과 선택 패스 입력 : 인수로 .)


답변

그 한 줄 스크립트, 그 폴더에 CD가 있고 …

for f in *; do mv "$f" "$(echo $f)"; done

쉘 스크립트에 넣고 Applescript에서 호출 :

tell application "Terminal"
    do script "whatever"
end tell


답변

Tuan의 대답에 기초하여 정답을 얻으려면 파일의 이름을 바꿀뿐만 아니라 다음 작업에 대한 작업 체인을 보존 할 필요가있는 다음이 필요합니다.

또한 파일 만 상위 폴더의 이름을 바꿀 필요가 없다는 점에 유의하십시오.

for f in "$@" ; do
    dirname=$(dirname "$f")
    basename=$(basename "$f")
    name=${basename%.*}
    ext=${basename##*.}
    name="$(echo "$name" | sed -Ee 's/^ +//;s/ +$//')"
    new="$dirname/$name.$ext"
    mv "$f" "$new"
    echo "$new"
done

또한 이것을 쉘 스크립트 자체에 넣을 필요가 없으며, automator는이를 “Run Shell Script”작업에 포함시킬 수 있습니다.


답변

파일과 폴더 이름에서 공백 문자를 제거하려고했습니다. 이 슈퍼 유저 게시물 도와 줬어.


답변

파일 이름을 다듬는 AppleScript (Automator와 매우 유사)가 있습니다. 조금 길기 때문에 여기에 게시 할 수는 없지만 이리 코드에 대한 링크입니다. 스크립트의 기능과 작동 방식을 설명하는대로 코드의 시작 부분을 읽어야합니다.


답변