Я хочу добавить fastboot
до конца существующего значения переменной GRUB_CMDLINE_LINUX_DEFAULT в / etc / default / grub не вручную, а с помощью сценария bash и echo
команда. Проблема в том, что начальные значения этой переменной различаются на разных машинах, поэтому я не знаю, какой алгоритм поиска использовать, чтобы определить, где заканчивается значение переменной. Я хочу, чтобы мне показали, как добавлять fastboot
непосредственно к существующему значению.
Не знаю, как это сделать в чистом bash, но обычно поиск и замена вызывали либо awk
или sed
.
sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT.*/& fastboot/' /etc/default/grub
-i
: заменить на месте
Далее следует синтаксис поиска и замены s/REGEXP/REPLACEMENT/
^GRUB_CMDLINE_LINUX_DEFAULT.*
: РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ, которое соответствует в строке (ах), начинающейся ^
с GRUB_CMDLINE_LINUX_DEFAULT и любым количеством символов после этой строки: .*
& fastboot
: строка REPLACEMENT, в которой неэкранированный &
символ ссылается на всю согласованную часть пространства шаблонов (то есть независимо от того, что соответствует REGEXP, в этом примере: вся строка) и добавляет fastboot