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
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?
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
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
Tags shell-script