Обрізати назви файлів в автоматі w. оболонки або яблука


2

Чому це не працює?

(Автоматизатор - шведський, але його частини: отримувати вибрані об'єкти пошуку - отримати вміст папки - виконувати сценарій оболонки)

Printscreen Automator

Я хочу обрізати перші три символи імен файлів у папці як частину дії папки автоматизації. Я сам не знаю сценаріїв оболонки, але читав зовсім небагато, і думаю, що це має справу.

Я також спробував це з applescript: Automator Applescript

Він працює краще, але тільки з перших 8 файлів з якоїсь причини.

Хто-небудь знає, як це вирішити? / Данило

Відповіді:


3

Причина того, що ваш скрипт не робить того, що ви хочете, тому що Automator передає повний шлях файлів як аргументи.

Якщо повний шлях до одного з файлів /Users/foo/Temp/file1.txt, то ваш сценарій намагається перейменувати його на ers / foo / Temp / file1.txt, що не є тим, що ви хочете.

Спробуйте замість цього:

for f in "$@"; do
  FILENAME=$(basename "$f")
  DIRNAME=$(dirname "$f")
  mv "$f" "${DIRNAME}/${FILENAME:3}"
done

Ще краще (правильно обробляє назви файлів):

for f in "$@"; do
  FILENAME=$(basename "$f")
  DIRNAME=$(dirname "$f")
  if [ -z "$DIRNAME" ]; then
    DIRNAME="."
  fi
  mv "$f" "${DIRNAME}/${FILENAME:3}"
done
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.