tonyhts
(usa Arch Linux)
Enviado em 06/01/2016 - 18:43h
guilgordo escreveu:
Cara muito obrigado pela ajuda, funcional certinho,
você poderia me falar como funciona o codigo que você me enviou?
Olá,
Claro!
Vamos lá:
#!/bin/bash >>>>
Aqui vc esta indicando pro sistema qual interpretador usar, no caso, o BASH
sed -ri "/temperatura/ s/=.*/= $2/g" $1
sed -ri "/pressao/ s/=.*/= $3/g" $1
sed -ri "/volume/ s/=.*/= $4/g" $1
Vou dividir o comando utilizado acima (SED) pra ficar melhor. Não vou entrar nos detalhes, mas acho que conseguirá entender.
sed -ri "/temperatura/ s/=.*/= $2/g" $1
A sintaxe do que utilizei foi sed -ri "
/linhas com a palavra ou frase procurada
/ substituir
/isso
/por_aquilo
/" em todas as ocorrenicas encontradas.
sed -ri : o parâmetro -r diz ao sed para ativar o recurso de expressões regulares extensivo , o parâmetro -i diz ao sed para realizar as alterações diretamente no arquivo e não só mostrar na tela.
$1, $2, $3 etc.. são parâmetros posicionais, ou seja, a ordem dos parametros (Primeiro parâmetro, Segundo parâmetro e etc..)
Então resumidamente seria assim:
Sed, nas linhas em que contem a palavra temperatura, faça o seguinte:
substitua isso: =.* ( essa expressão regulçar significa todos os caracteres do sinal de igual até o fim da linha)
Por isso: = $2 ( parâmetro posicional numero 2, ou seja, o segundo parâmetro digitado por vc na linha de comando)
No arquivo: $1 ( parâmetro posicional numero 1, ou seja, o primeiro parâmetro digitado por vc na linha de comando)
OBS IMPORTANTE: Repare que usei aspas duplas nesse comando, pois do contrário o sed interpretaria o $ como fim de linha)
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.
--- Mestre dos Mestres - Alan Turing ---