Crie um script para editar automaticamente um arquivo e execute um comando

Crie um script para editar automaticamente um arquivo e execute um comando

Eu pesquisei nos fóruns, mas sendo um novato não consigo encontrar algo que eu possa entender.

Estou tentando criar um script que edita 3 linhas específicas do texto, salva e executa o comando de reinicialização do serviço. Isso está sendo feito para controle do ventilador. Ainda não encontrei uma GUI, então edito manualmente as velocidades, já que é verão e durante o dia preciso de velocidades mais altas do ventilador.

Antes que alguém diga para basear a temperatura, quero que a temperatura fique abaixo de um certo grau e durante a noite a velocidade mais baixa do ventilador está ok, então é meio impossível.

sudo nano /etc/fancontrol
sudo service fancontrol restart 

comandos que executo diariamente, mas cansei de editá-los o tempo todo. Digamos que eu possa usar 2 scripts (um com velocidades de ventilador mais altas e outro com velocidades mais baixas) e executá-los manual ou automaticamente em um horário específico.

# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10                                                                                                                                                             
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/it87.2608                                                                                            
DEVNAME=hwmon1=coretemp hwmon2=it8728                                                                                                                                   
FCTEMPS=hwmon2/pwm2=hwmon2/temp2_input hwmon2/pwm3=hwmon1/temp4_input                                                                                                   
FCFANS=hwmon2/pwm2=hwmon2/fan2_input hwmon2/pwm3=hwmon2/fan1_input                                                                                                      
MINTEMP=hwmon2/pwm2=10 hwmon2/pwm3=25                                                                                                                                   
MAXTEMP=hwmon2/pwm2=80 hwmon2/pwm3=55                                                                                                                                   
MINSTART=hwmon2/pwm2=**220** hwmon2/pwm3=210                                                                                                                                
MINSTOP=hwmon2/pwm2=**200** hwmon2/pwm3=200                                                                                                                                 
MAXPWM=hwmon2/pwm2=**220** hwmon2/pwm3=255 

Valores em negrito são os que preciso alterar.

Desde já agradeço pessoal!!!

Responder1

Você pode usar o sedcomando para editar um arquivo usando um comando. Por exemplo,

sed -i 's/MINSTART=hwmon2\/pwm2=220/MINSTART=hwmon2\/pwm2=400/' /etc/fancontrol

mudará o valor 220para 400.

ssignifica "pesquisa". Após o delimitador /que separa o comando em partes, segue a string a ser pesquisada, até a próxima (sem escape) /. O \/é um escaped /, que significa: "interprete next /como um caractere literal pertencente à string de pesquisa em vez de um delimitador para as diferentes partes do comando. Em seguida, segue a string pela qual você substitui, terminada com /. Após o terminating /, você pode adicionar opções Uma importante é g, o que significa que qualquer ocorrência deve ser substituída. Por padrão, apenas a primeira ocorrência encontrada é substituída.

Tornar a string de pesquisa específica diminui a chance de que ela também corresponda a outra coisa no arquivo.

informação relacionada