Shellscript: for encadeado (string + numeros)

Criar lista ordenada de tipos

Como passado

tipos=`echo decreto lei lim lcp ldl lct dsn dlg plc mpv decreto-lei| tr ' ' '\n'|sort`

caixa baixa

tipos=`echo Decreto lei LIM lcp ldl lct dsn dlg plc mpv decreto-lei| tr ' ' '\n'| tr [A-Z] [a-z] |sort`

caixa alta

tipos=`echo Decreto lei LIM lcp ldl lct dsn dlg plc mpv decreto-lei| tr ' ' '\n'| tr [a-z] [A-Z] |sort`

Verificar lista ordenada de tipos

$ echo $tipos
decreto decreto-lei dlg dsn lcp lct ldl lei lim mpv plc

Criar lista ordenada de tipos

O expressão apresentada abaixo gerará 2398 diretórios, para efeito demonstrativo exibirei apenas os comandos.
for ato in `echo $tipos`; do for ano in {1800..2018}; do echo mkdir -pv ${ato}/${ano}; done; done
mkdir -pv decreto/1800 mkdir -pv decreto/1801 mkdir -pv decreto/1802 mkdir -pv decreto/1803 mkdir -pv decreto/1804 .. mkdir -pv plc/2011 mkdir -pv plc/2012 mkdir -pv plc/2013 mkdir -pv plc/2014 mkdir -pv plc/2015 mkdir -pv plc/2016 mkdir -pv plc/2017 mkdir -pv plc/2018

Criar lista ordenado a partir de um arquivo

tipos=$(awk -F: '{print $1}' ~/projetos/saj_projects/relatorios/README.txt |tr [A-Z] [a-z]|sort)
for ato in `echo $tipos`; do for ano in {1800..2018}; do echo mkdir -pv ${ato}/${ano}; done; done

Comentários