Cree un script para editar automáticamente un archivo y ejecute un comando

Cree un script para editar automáticamente un archivo y ejecute un comando

He buscado en los foros pero siendo novato no encuentro algo que pueda entender.

Estoy intentando crear un script que edite 3 líneas específicas del texto, lo guarde y ejecute el comando de reinicio del servicio. Esto se hace para el control de los ventiladores. Todavía no he encontrado una GUI, así que edito manualmente las velocidades ya que es verano y durante el día necesito velocidades de ventilador más altas.

Antes de que alguien diga que se base en la temperatura, quiero que la temperatura se mantenga por debajo de cierto grado y durante la noche una velocidad más baja del ventilador está bien, por lo que es algo imposible.

sudo nano /etc/fancontrol
sudo service fancontrol restart 

Comandos que ejecuto a diario pero me aburrí de editarlos todo el tiempo. Digamos que podría usar 2 scripts (uno con velocidades de ventilador más altas y otro con velocidades más bajas) y ejecutarlos de forma manual o automática a una hora específica.

# 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 

Los valores en negrita son los que necesito cambiar.

¡¡¡Gracias de antemano chicos!!!

Respuesta1

Puede usar el sedcomando para editar un archivo usando un comando. Por ejemplo,

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

cambiará el valor 220a 400.

ssignifica "buscar". Después del delimitador /que separa el comando en partes, sigue la cadena a buscar, hasta la siguiente (sin escape) /. Es \/un carácter de escape /, lo que significa: "interprete next /como un carácter literal que pertenece a la cadena de búsqueda en lugar de como un delimitador para las diferentes partes del comando. Luego sigue la cadena con la que reemplaza, terminada con /. Después de terminar /, puede agregar Una importante es g, lo que significa que cualquier aparición debe reemplazarse. De forma predeterminada, solo se reemplaza la primera aparición.

Hacer que la cadena de búsqueda sea específica disminuye la posibilidad de que también coincida con algo más en el archivo.

información relacionada