LINUX.ORG.RU

Работа с массивами


0

1

Здравствуйте, уважаемые форумчане! Нужна ваша помощь в решении одной проблемы. Есть группа файлов с именами от 0001 до x, где x кратно четырем. Необходимо переместить их в директорию /tmp в следующем порядке:

x:0001:x-1:2:x-2:3:x-3..., etc.
Наверное, их стоило бы обрабатывать как массив для удобства? Я до этого не работал с массивами, нуждаюсь в вашем совете, как бы это лучше сделать.

Ответ на: комментарий от anonymous

Да даже проще. В папке уже все эти файлы записаны под надлежащими именами. Все, что мне нужно - пересортировать их и переместить в /tmp. Допустим, у нас было 10 файлов, в итоге должно получиться так:

10:1:9:2:8:3:7:4:6:5

ghostmansd
() автор топика
Ответ на: комментарий от ghostmansd

Гм, немного коряво высказался. Сначала файлы пересортировываются в порядке

10:1:9:2:8:3:7:4:6:5
а затем перемещаются в /tmp, причем файл 10 получает имя 1, 1 - 2, 9 - 3, etc.

ghostmansd
() автор топика
Ответ на: комментарий от ghostmansd
#!/bin/sh

b=1
e=$1
i=1

while [ $(( $e - $b )) -gt 0 ]
do
    echo mv $(printf "%04d" $e) /tmp/$i
    echo mv $(printf "%04d" $b) /tmp/$(( $i + 1 ))

    e=$(( $e - 1 ))
    b=$(( $b + 1 ))
    i=$(( $i + 2 ))
done
skwak
()

Заряжаете цикл с шагом четыре (или цткл по имен если они числа, это стабильней), вычисляете новое имя и перемещаете. Зачем кого то куда то сортировать и сувать в массивы?

AIv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.