Я знаю, что этот вопрос задан, но я не могу найти более одного решения, и он не работает для меня. По сути, я ищу Баш скрипт, который будет принимать список файлов, который выглядит следующим образом:Создайте новую последовательность файлов из существующей последовательности вместе с нумерацией
image1.jpg
image2.jpg
image3.jpg
И затем сделайте копию каждого , но число его последовательно назад. Таким образом, последовательность будет иметь три новых файлов, созданных, являются:
image4.jpg
image5.jpg
image6.jpg
И все же, image4.jpg был бы нетронутый экземпляр image3. jpg и image5.jpg нетронутая копия image2.jpg и так далее. Я уже пробовал решение, описанное в this stackoverflow question, не повезло. Я, по общему признанию, не очень далеко от пути к сценарию bash, и если я возьму кусок кода в первом указанном ответе и сделаю скрипт, я всегда получаю «2: Синтаксическая ошибка:» («неожиданно» снова и снова. я попробовал изменить синтаксис с (примерно немного, но не успел когда-либо). Так что либо я делаю что-то неправильно, либо есть лучший сценарий.
Извините, что не публиковал это ранее, но код, который я использую является:
image=(image*.jpg)
MAX=${#image[*]}
for i in ${image[*]}
do
num=${i:5:3} # grab the digits
compliment=$(printf '%03d' $(echo $MAX-$num | bc))
ln $i copy_of_image$compliment.jpg
done
и я беру этот код и вставить его в файл с нано- и добавление #/bin/Баш в качестве первой строки, затем chmod +x script
и выполняется в Баш через sh script
Конечно,!. в моих тестах я использую файлы соответственно t itled image1.jpg - но мне также было интересно, как применить этот скрипт к каталогу jpegs, не обязательно под названием image (integer) .jpg - в моей структуре хранения файлов большинство из них - это одно слово, за которым следует number, then .jpg, и было бы неплохо не переписывать скрипт для каждого использования.
Мы не можем помочь с синтаксической ошибкой, если вы не разместите код. Пожалуйста, сделай. – tripleee
Спасибо за обновление. Синтаксис массива - это basism, убедитесь, что у вас есть '#!/Bin/bash' в верхней части файла, иначе вы можете столкнуться с' sh' (или даже 'csh', на некоторых платформ). – tripleee
При ближайшем рассмотрении ошибка 'sh script'; вы хотите использовать 'bash script' (или просто'./script'). – tripleee