Copie os arquivos da Coluna1 em CSV para o nome da pasta de destino na Coluna2 em CSV (Linux) [duplicado]

0

Eu tenho um CSV com duas colunas. Coluna 1 são nomes de arquivos completos. Coluna dois são nomes de pastas. Eu preciso copiar o arquivo na coluna 1 para a pasta na coluna 2. Ambos os arquivos e pastas estão no mesmo diretório principal. Eu tenho o seguinte script:

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

Isso diz que está funcionando, mas quando eu verifico a pasta, recebo um arquivo sem nome. O conteúdo do arquivo está correto, mas o arquivo não tem nome e apenas um arquivo existe em cada pasta. Como posso evitar isso?

Exemplo de vim de 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/
    
por Alex L. Mermelstein 19.02.2017 / 02:51

2 respostas

0

Você deve verificar se o diretório existe antes de tentar copiá-lo:

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

Eu percebi isso. Eu usei um loop para fazer arquivos de texto para cada subpasta, então usei um novo loop aninhado para copiar o conteúdo do arquivo de texto na pasta apropriada. Trabalhou.

    
por 19.02.2017 / 14:38

Tags