Мне нужно изменить переменную в файле, используя скрипт bash, я думаю, что sed - это путь, но я не могу понять регулярное выражение.
Я попытался заменить символ в файле, но потом понял, что то, что я заменяю, тоже изменится.
Можете ли вы помочь с заменой 3-й и 4-й строки в файле с помощью sed?
Например, из того, что я имею в виду
mode blender
type kitchen
blender.net 5.5.5.5.6:33 blender blender
blender.com 5.5.5.5.5:33 blender blender
я хочу иметь возможность изменить весь 3-й и 4-й ряд с
blender.net x.x.x.x:33 blender blender
Можно указать на диапазон строк для работы на в sed
, например, в случае 3,4
строка указания 3 к (и) 4:
sed -r '3,4 s/.*/blender.net x.x.x.x:33 blender blender/' file.txt
Пример:
$ cat file.txt
mode blender
type kitchen
blender.net 5.5.5.5.6:33 blender blender
blender.com 5.5.5.5.5:33 blender blender
$ sed -r '3,4 s/.*/blender.net x.x.x.x:33 blender blender/' file.txt
mode blender
type kitchen
blender.net x.x.x.x:33 blender blender
blender.net x.x.x.x:33 blender blender
Здесь мы делаем желаемую операцию замены на строке 3 и 4.
<час>От переменной:
$ var=5.5.5.5.6:3
$ sed -r "3,4 s/.*/blender.net $var blender blender/" file.txt
mode blender
type kitchen
blender.net 5.5.5.5.6:3 blender blender
blender.net 5.5.5.5.6:3 blender blender