Eutenhováriosdiretórioscriadosdeacordocoma"coluna da lição"
exemplo:
/tmp/Caldera/
/tmp/Basic Navigation/
/tmp/Signs and Symbols/
Eu tenho um monte de arquivos json exemplo:
0e689686-4f5a-4800-90ac-771cfe228532.json
bb6632cc-633a-4cc9-9188-1407d7c9cf38.json
1a9e620f-253a-44ee-a68d-11fb7fe8d082.json
Esses arquivos acima precisam ser colocados em seu diretório:
0e689686-4f5a-4800-90ac-771cfe228532.json ---> /tmp/Caldera/
bb6632cc-633a-4cc9-9188-1407d7c9cf38.json ---> /tmp/Basic Navigation/
1a9e620f-253a-44ee-a68d-11fb7fe8d082.json ---> /tmp/Signs and Symbols/
Eu usaria uma variável chamada "INFO" para extrair essa consulta do SQL.
echo "$INFO" | awk '{ print $3 }'
adicione uma extensão ao final do arquivo ".json" para parecer com "0e689686-4f5a-4800-90ac-771cfe228532.json"
, finalmente mova o arquivo do diretório de origem para /tmp/Caldera/
.
Mesmo para bb6632cc-633a-4cc9-9188-1407d7c9cf38.json ---> /tmp/Basic Navigation/
.
Acho que precisaria usar um loop for, algo como:
INFO=$( /usr/bin/mysql -s
--password=$MYSQL_PASSWORD
--user=$MYSQL_USER
--host=$MYSQL_HOST
--database=$MYSQL_DB
--disable-column-names
--execute="SELECT
cl.uuid AS compiled_lessons_uuid,
cl.videos_uuid,
cl.assessments_uuid,
cl.lessons_uuid,
les.name AS lesson
FROM
compiled_lessons cl
JOIN
lessons les
ON
les.uuid = cl.lessons_uuid;" )
SOURCE_DIR="/opt/assessments/
for line in $( cat echo "$INFO" | awk '{ print $3.json }' ) ; do
mv "$SOURCE_DIR"/$line /tmp/{lesson}/
done
A lição está se referindo à coluna {lesson}
na foto anexada. exemplo /tmp/Caldera
como acima.
De alguma forma, o bash deve verificar $3
e movê-lo para $5
. Essa é a verdadeira questão aqui.
Qualquer ideia sobre como fazer isso.