У меня есть ситуации, где я хочу Баш скрипт для замены целой строки в dnsmasq.confЗаменить целые строки в файле .conf
По умолчанию линии:
listen-address=192.168.42.1
dhcp-range=192.168.42.1,192.168.42.253,255.255.255.0,192.168.42.255,24h
dhcp-option=option:router,192.168.42.1
я реализую :
new_ip=$1
broadcast=$2
base_ip=`echo $new_ip | cut -d"." -f1-3`
sed -i 's/^listen-address.*/listen-address=$new_ip/' /etc/dnsmasq.conf
sed -i 's/^dhcp-range.*/dhcp-range=$base_ip.1,$base_ip.254,255.255.255.0,$broadcast,24h/' /etc/dnsmasq.conf
sed -i 's/^dhcp-option.*/dhcp-option=option:router,$new_ip/' /etc/dnsmasq.conf
Я зову Баш как ./test.sh 172.24.239.40 172.24.239.255 и я получаю следующие строки:
listen-address=$new_ip
dhcp-range=$base_ip.1,$base_ip.254,255.255.255.0,$broadcast,24h
dhcp-option=option:router,$new_ip
Возможно ли отделить параметр от текста в командных командах sed?
Спасибо @anubhava! Он отлично работает – ogs
Добро пожаловать, рад, что все получилось. – anubhava