Aqui está uma maneira de fazer isso:
$ for file in ifcfg*; do
num=$(grep IPADDR $file|awk -F. '{print $4}')
sed -e "s/10.1.1.[0-9]\+/10.2.2.$(($num-19))/" $file >tmp/$file
done
Isso pega o conteúdo do endereço IP e o corta para baixo, de modo que é o quarto octeto, que é armazenado na variável $num
. Essa variável é então adicionada com 19
durante o comando sed
. Eu precisava expandir um sed
original adicionando um [0-9]\+
para remover o quarto octeto existente para que pudéssemos substituí-lo por $num+19
.