После awk
может помочь вам в том же.
awk -v value="new_value" '/mailHost/{match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/);val=substr($0,RSTART,RLENGTH);if(val){print substr($0,1,RSTART-1) value substr($0,RSTART+RLENGTH);next}} 1' Input_file
Если вы хотите внести изменения в сам файл Input_file, добавьте следующую команду: > temp_file && mv temp_file Input_file
.
Теперь добавлена форма объяснения не одним вкладышем.
awk -v value="new_value" '
/mailHost/{
match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/);
val=substr($0,RSTART,RLENGTH);
if(val){
print substr($0,1,RSTART-1) value substr($0,RSTART+RLENGTH);
next}
}
1' Input_file