заменить строку из указанного номера строки и столбца

Если вы имеете в виду запланированные изменения в конфигурации программного обеспечения и предполагаете, что оборудование идеально работает (я такого еще не видел) и программное обеспечение без ошибок ( вы знаете ...), то только ошибка в ядре или драйвере заставит вас перезагрузиться. :)

Кроме этого ... Я не уверен, можно ли заменить init без переключения в однопользовательский режим и без каких-либо магических действий, которые по сути мало чем отличаются от перезагрузки.

1
10.12.2018, 00:17
2 ответа

Если речь идет именно об этом конкретном K, то можно избавиться от флага g, так как sedзаменит Kтолько один раз. Таким образом:

sed -i "4s/K/exc/" <newfile> 

А именно, он заменяет первое появление Kна excв строке 4.

3
27.01.2020, 23:18

Если вам нужен первый 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.

1
27.01.2020, 23:18

Теги

Похожие вопросы