Если вы имеете в виду запланированные изменения в конфигурации программного обеспечения и предполагаете, что оборудование идеально работает (я такого еще не видел) и программное обеспечение без ошибок ( вы знаете ...), то только ошибка в ядре или драйвере заставит вас перезагрузиться. :)
Кроме этого ... Я не уверен, можно ли заменить init
без переключения в однопользовательский режим и без каких-либо магических действий, которые по сути мало чем отличаются от перезагрузки.
Если речь идет именно об этом конкретном K
, то можно избавиться от флага g
, так как sed
заменит K
только один раз. Таким образом:
sed -i "4s/K/exc/" <newfile>
А именно, он заменяет первое появление K
на exc
в строке 4.
Если вам нужен первый K
, просто избавьтесь от флага g
:
sed -i '4s/K/exc/' <newfile>
Если вы хотите заменить 2-ю, 3-ю и т. д. K
, используйте 2
, 3
, 4
вместоg
sed -i '4s/K/exc/2' <newfile>
sed -i '4s/K/exc/3' <newfile>
Если вы хотите заменить все K
с 3-го до конца (поддерживается только GNU sed):
echo 'KKKKKK' | sed s/K/E/3g
KKEEEE
Кстати, не используйте двойные кавычки ("
), если вы действительно не хотите вставлять переменные оболочки, расширения команд и т. д. в строку, переданную в sed
.