У меня есть куча файлов с такими именами

file_1_v4_sdk.x
file_2_v1_3kl.x
file_3_v1_39f.x
file_3_v2_df0.x
file_4_v4_f33.x
file_4_v1_fks.x
file_4_v5_skd.x
file_5_v2_9ks.x
file_6_v4_911.x
file_7_v2_3jd.x
file_8_v1_9pc.x
file_8_v4_gpq.x

Итак, есть несколько версий некоторых файлов, но у таких версий нет порядка. Я хочу найти те файлы, которые имеют несколько версий, и оставить только одну версию в каталоге и переместить другие версии в другой каталог. Я понятия не имею, как это сделать. Я знаю только, как перебирать списки, но в этом случае нет порядка.

Я надеюсь, что вы можете мне помочь.

1 ответ1

1

Попробуйте это с помощью GNU sort и bash:

cd /path/to/dir/with/your/files
GLOBIGNORE="$(printf "%s\n" file_* | sort -t _ -k2,3r | sort -t _ -k2,2 -u | tr '\n' :)"
mv file_* /path/to/dir/to/save/old/versions
unset GLOBIGNORE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .