Возьмите ограниченные файлы из каталога и вставьте их в другой каталог - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть каталог, содержащий 80.000 изображений , я хочу произвольно вставить 30.000 изображений из этого каталога в другой каталог, используя команды Bash .

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Хотя предоставленный ответ правильный, shuf установлен не во всех системах, поэтому вы можете использовать вместо него sort -R.Я цитирую справочную страницу:

Сортировка по случайному порядку.Это случайная перестановка входных данных, за исключением того, что равные ключи сортируются вместе.Это реализуется путем хеширования клавиш ввода и сортировки значений хеш-функции.Хеш-функция выбирается случайным образом.Хеш-функция рандомизируется по содержимому / dev / random или по содержимому файла, если это задано параметром --random-source.Даже если указано несколько полей сортировки, для всех них используется одна и та же случайная хеш-функция.

Пока у вас нет дубликатов (точно такой же файл, только с другим именем) иВы не хотите устанавливать shuf или любой другой инструмент, который вы можете использовать для получения «случайной» сортировки.

ls | sort -R | tail -n 30000 | xargs -I "{}" cp "{}" ./target
0 голосов
/ 13 февраля 2019

Если вы находитесь в каталоге, где находятся 80000 изображений, а другой каталог называется target, это должно работать:

ls | shuf | head -n 30000 | xargs -i cp "{}" target/.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...