Использование CSV-файла для перемещения файлов в разные каталоги

У меня есть этот большой каталог из 1000+ файлов из набора данных для машинного обучения, но эти файлы имеют разные качества (картинки с розами или дамы, чтобы они были простыми). У меня есть этот CSV-файл с именами файлов каждого из этих элементов в наборе данных, а также их категоризацией (розы против ромашки). Как я могу прочитать этот CSV-файл и сообщить файловому менеджеру переместить все розовые фотографии в один каталог и все ромашки в другой каталог? Должен ли я использовать скрипт Bash, или это то, что уже встроено в Nautilus?

1
задан 11 December 2016 в 02:26

1 ответ

Вот скрипт bash, который должен делать то, что вы хотите:

#!/bin/bash

fileNameIndex=0   # set to index of file name
categoryIndex=1   # set to index of category

IFS=",""$IFS"     # add comma to break lines at commas

while read -a tokens;    # read a line and break it into tokens separated by commas
do
    file=${tokens[$fileNmeIndex]}       # get the file name
    category=${tokens[$categoryIndex]}  # get the category
    if [ ! -d $category ]; then         # check if the category directory exists
        mkdir $category;                # make the category directory
    fi
    mv $file $category                  # move the file into the category directory
done

Сохраните этот скрипт в файле, возможно, do_moves.sh, отредактируйте его, чтобы установить правильные значения для fileNameIndex и categoryIndex, затем запустите его как:

./ do_moves.sh & lt; data.csv

, где data.csv - ваш CSV-файл. Перед запуском убедитесь, что у вас нет файлов с тем же именем, что и категория.

0
ответ дан 23 May 2018 в 03:27

Другие вопросы по тегам:

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