синхронизировать файлы с разным расширением в MacOS

Это линия нарушения. Вам нужно экранировать кавычки при печати, но не при выполнении.

_find=`find "$_pwd" -maxdepth 1 -type d | wc -l`
1
19.09.2016, 20:59
1 ответ

Попробуйте следующее:

for file in cr2files/*; do
   test=”jpgfiles/$(basename ${file:: -3})jpg”
   if [ ! –f “$test” ]; then
      echo “$file”
   fi
done

Если он получит желаемые результаты, вы можете заменить строку - echo «$ file» - на - rm «$ файл" -. Строка - test = ”jpgfiles / $ (basename $ {file :: -3]) jpg” - удаляет путь и расширение из имени файла и заменяет их на «jpgfile / filename.jpg». Не забудьте изменить пути «cr2files» и «jpgfiles» на правильные. Вы можете использовать переменные, если хотите, или передать имена путей к вашему скрипту в аргументах.

Редактировать:

Ваше место в «Toshiba ser» испортило базовое имя. Вот решение:

#!/bin /bash
IFS=’’
for file in “$1”/*; do
   test=”$2/$(basename ${file:: -3})jpg”
   if [ ! –f “$test” ]; then
      rm “$file”
   fi
done

Назовите это так ./removephotos.sh «volume / toshiba ser / raw» «volume / toshiba ser / jpg». Обратите внимание, что между одинарными кавычками в IFS = '' on line ничего нет. # 2.

0
28.01.2020, 01:11

Теги

Похожие вопросы