Como automatizar um processo repetitivo usando scripts de shell [closed]

1

Então, basicamente, preciso executar um comando, digamos $ exampleCommand var1_1 e, ao concluir este comando, executar $ exampleCommand var1_2 , em seguida, com var2_1 etc .... Estou executando isso em 50 a 60 arquivos cada, em 90 + gb por isso, fazer isso manualmente não é possível e eu nunca tentei automatizar algo assim. Id aprecio algumas dicas sobre como proceder para fazer isso. Eu acho que criar um arquivo .sh e depois executá-lo no servidor im trabalhando?

    
por Ayedu 14.09.2017 / 00:29

2 respostas

2

Isso deve apontar você na direção certa:

$ for i in {1..3}; do for j in {x..z}; do echo ${i}_${j}; done; done
1_x
1_y
1_z
2_x
2_y
2_z
3_x
3_y
3_z
    
por 14.09.2017 / 00:45
0

A pergunta que você faz é um pouco global, e há muitas maneiras de automatizar tarefas específicas. O problema geralmente vem em muitos nomes de arquivos diferentes ou padrões de correspondência regex. Por favor, faça o backup de arquivos antes mesmo de executar qualquer script.

Apenas para você seguir em uma direção, veja exemplos:

array=(file1 file2 file3)
for i in "${array[@]}"; do
    echo "$i"
done

user @ workdir: # cd / dir & & ls > ../ files.list

main() {
    local list='/workdir/files.list'
    for item in $(cat "$list"); do
        func_read "$item"
    done
}

func_read() {
    local var="$1"
    [[ ! -d "$var" ]] && \
        while read -r line; do
            echo "$line"
        done < "$var"
}
main
    
por 14.09.2017 / 01:12