Como eu crio um monte de arquivos com diferentes parâmetros no corpo de cada arquivo?

1

Então, digamos, eu quero criar um monte de arquivos com esse nome (onde eu tenho um arquivo original "albedo10solar100" com texto dentro), onde vario albedo de 10 a 60 em passos de 10 e solar de 90 a 100 em etapas de 5:

  • albedo10solar100.m
  • albedo10solar95.m
  • albedo10solar90.m
  • ...
  • albedo20solar100.m
  • albedo30solar100.m

Eu imagino que eu teria que primeiro usar o comando cat várias vezes primeiro no albedo10solar100, então eu precisaria primeiro de algum script de shell que poderia cat albedo10solar100 > albedo {$ m} solar {$ n}.

Mas então, e se eu quisesse substituir em lote todas as instâncias de 100 com 95 no corpo de albedo10solar100? E assim por diante para cada arquivo adicional?

    
por InquilineKea 09.06.2012 / 20:02

2 respostas

3

todo o script será exibido para criação e substituição de números no corpo:

for i in $(seq 10 10 60)
do
    for j in 90 95 100
    do
        sed "s/100/$j/g" albedo10solar100.m_orig > "albedo${i}solar${j}.m"
    done
done

você precisa criar albedo10solar100.m_orig antes, porque caso você use albedo10solar100.m , ele será reescrito com um arquivo vazio.

    
por 09.06.2012 / 21:34
1

você pode usar sed .

sed 's/100/95/g' albedo10solar100.m > albedo10solar95.m

Claro que você poderia substituir "100" e / ou "95" por outro REGEX para melhor correspondência de padrões

    
por 09.06.2012 / 20:37