Мне нужно заменить числовое значение, которое встречается в определенной строке из ряда файлов конфигурации в шаблоне, подобном следующему:
string number_1 number_to_replace number_2
Я хочу получить что-тонапример:
string number_1 number_replaced number_2
Сложности, с которыми я столкнулся:
- number_1 или number_2 могут быть равны number_to_replace, поэтому простая замена невозможна.
- число_1 и число_2 различаются в разных конфигурационных файлах, поэтому я не знаю их заранее.
Самая близкая попытка, которую я получил до сих пор:
echo "field 4 4 4" | sed 's/\s4\s/3/'
Какие выходы:
field34 4
Это близко, учитывая, что я хочу заменить промежуточное число, я добавил еще один "\ s", чтобы попытаться использовать известный факт, что строка начинается с символа.
echo "field 4 4 4" | sed 's/\s\s4\s/3/'
Что дает:
field 4 4 4
Итак, на этот раз ничего не заменяется.Как я могу продолжить?Несколько подробное объяснение было бы идеальным, потому что мои знания о замене выражений, которые включают шаблоны почти в ноль.Спасибо.