У меня есть CSV с двумя столбцами. В столбце 1 указаны полные имена файлов. Второй столбец - это имена папок. Мне нужно скопировать файл в столбце 1 в папку в столбце 2. И файлы, и папки находятся в одном главном каталоге. У меня есть следующий скрипт:

IFS=','
while read OS HS
do
    cp -av $OS $HS
done < SlingManifest.csv

Это говорит о том, что это работает, но когда я проверяю папку, я получаю файл без имени. Содержимое файла правильное, но у файла нет имени, и в каждой папке существует только один файл. Как я могу предотвратить это?

Образец vim из CSV:

TinyHouseNation_600SqFtPowercouplesRetreat_190473_SLING.xml,./2_25_17/
BuyingTheView_RuralCasaNiagara_192555_SLING.xml,./2_26_17/
BuyingTheView_SexyHideAwayToronto_192546_SLING.xml,./2_26_17/
LifetimeOriginalMovie_LoveByThe10thDate_188563_SLING.xml,./2_27_17/
Special_10thDateGirlsNightIn_196744_SLING.xml,./2_27_17/
Special_SniperInsideTheCrosshairs_49112_SLING.xml,./2_27_17/

2 ответа2

0

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

0

Вы должны убедиться, что каталог существует, прежде чем пытаться скопировать в него:

#!/usr/bin/env bash
IFS=','
while read OS HS
do
    mkdir -p $HS
    cp -av $OS $HS
done < SlingManifest.csv

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