Я пытаюсь скопировать изображения на основе файла csv / txt, используя xargs, к сожалению, он может копировать только последнюю строку файла csv / txt.
Работает на macOS
СОДЕРЖАНИЕ ПАПКИ: изображения (папка)img_1.jpgIMG_2.jpgimg_3.jpgimg_4.jpgimg_5.jpgfile.csvfile.txt
file.csv CONTENT: img_1.jpgIMG_2.jpgimg_3.jpg
file.txt СОДЕРЖАНИЕ: img_1.jpgIMG_2.jpgimg_3.jpg
Уже пробовал: $ cat file.csv | xargs -t -I [] find . -type f -name "[]*" -exec cp {} images/ \;
$ cat file.csv | xargs -t -I % cp % images/
$ cat file.csv | xargs -t -I % sh -c 'find . -type f -name %; cp % images/'
ЗАДАЧА: Скопируйте только image_1.jpg, image_2.jpg & image_3.jpg в папку изображений
КОД 1 ВЫХОД: $ cat file.csv | xargs -t -I [] find . -type f -name "[]*" -exec cp {} images/ \;
* -exec cp {} images/ ;img_1.jpg
* -exec cp {} images/ ;img_2.jpg
find . -type f -name img_3.jpg* -exec cp {} images/ ;
cp: images/img_3.jpg and ./images/img_3.jpg are identical (not copied).
ПРИМЕЧАНИЕ. В папку изображений была скопирована только image_3.jpg
ВЫХОД КОДА 2: $ cat file.csv | xargs -t -I % cp % images/
images/img_1.jpg
cp: img_1.jpg\r: No such file or directory
images/img_2.jpg
cp: img_2.jpg\r: No such file or directory
cp img_3.jpg images/
ПРИМЕЧАНИЕ. Снова скопирован только файл image_3.jpg
КОД 3 ВЫХОД: $ cat file.csv | xargs -t -I % sh -c 'find . -type f -name %; cp % images/'
images/img_1.img_1.jpg
cp: img_1.jpg\r: No such file or directory
images/img_2.jpg img_2.jpg
cp: img_2.jpg\r: No such file or directory
sh -c find . -type f -name img_3.jpg; cp img_3.jpg images/
./img_3.jpg
./images/img_3.jpg
ПРИМЕЧАНИЕ. Снова скопирован только файл image_3.jpg