shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] sincronizar duas listas correndo paralelamente


From: Jorge Barros de Abreu
Subject: Re: [shell-script] sincronizar duas listas correndo paralelamente
Date: Sat, 3 Aug 2019 16:35:03 -0300
User-agent: Mutt/1.6.1 (2016-04-27)

Deu tudo certo.

Obrigado Mestre Ju'lio.

Segue o detalhamento:

Temos um programa executavel a.out que gera, a cada execucao
com parametros especificados, um arquivo nomegenerico.txt
e uma saida na tela.

O script abaixo pega

1.uma relacao, guardada em um arquivo texto, na qual constam
o executavel referido acima com certos parametros,
uma execucao por linha com parametros diferentes a cada linha,

2.executa o programa com os parametros solicitados naquela linha,

3.grava a saida que ele gerou na tela

4.pega o nomegenerico.txt gravado pelo executável
referente à aquela execucao daquela linha
e renomeia-o para um nome especifico

5.guarda a saida da tela gerada a partir da execucao
do a.out com os parametros constantes na linha.

6.gera um relatorio com

nomeespecifico
linhageradoracomparametros
saidadatela


#!/bin/bash
oIFS=$IFS  #garda o separador de campo para devolver quando acabar
IFS=';'    #efine o novo separador de campo
ARQUIVO="saida.txt"  #especifica o nome do arquivo de saida
LISTA=$(tr '\n' \; < entrada.txt) #pega a lista com executavel+parametros
                                  #sendo uma execucao por linha
j=0        #inicializa o contador de nomes especificos
if [ -e $ARQUIVO ]      #se tiver um relatorio antigo apaga
    then
    rm $ARQUIVO
fi
for i in $LISTA
do
    echo "`printf '%03i\n' $j`.txt" >> $ARQUIVO #guarda o nome especifico
    echo "$i" >> $ARQUIVO                       #guarda a linha geradora 
comparametros
    eval $i >> $ARQUIVO                         #executa e grava a tela
    if [ -e nomegenerico.txt ]                  #se o arquivo for gerado
        then
        mv  nomegenerico.txt `printf '%03i\n' $j`.txt #renomeia o geral para o 
especifico
    fi
    j=$(($j+1))           #incrementa o nome especifico
done
IFS=$oIFS    #devolve o separador de campo original



-- 
Data Estelar 2458699,256053
http://sites.google.com/site/ficmatinf
Desejo-lhe Paz, Vida Longa e Prosperidade.
São Bem Vindas Mensagens no Formato texto UTF-8 com Acentos.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]