Найти и заменить шаблон после последнего пробела

Я получил это -сегодня. В моем случае я выбрал «Enable EFI» на панели настроек:Systemна вкладке Motherboard. Это было осознанно, потому что диск, с которого я хотел загрузиться, (не загружался ).

Это можно удалить, сняв флажок -.

Хотя это выглядит полезным, это очень раздражает, поэтому я советую людям открывать веб-страницы с выводом справки на дисплей. Все команды прокручиваются за пределы экрана, прежде чем вы успеваете их прочитать. И нет команды lessили more.

0
08.10.2020, 12:34
2 ответа

Можешь попробовать

sed -E 's/(^.*) [^ ]+$/\1 replacement_text/' file.txt

Это будет соответствовать

  • "что-нибудь с начала строки" (шаблон ^.*, помещенный в "группу захвата" (... )),
  • затем пробел,
  • , а затем «что угодно , но пробел([^ ])до конца строки» (+после [...]означает «один или несколько таких символов»,а $— это якорь, указывающий «конец -строки -» ),

и замените последнюю часть текстом замены. Прежняя часть заменяется «на себя» благодаря группе захвата \1.

1
18.03.2021, 22:59

Это работает, когда в начале строки есть два поля, разделенных пробелом. Третье поле может отсутствовать.

awk '{print $1 " " $2 " new text"}' < file

Это заменяет после последний пробел независимо от того, сколько пробелов в строке:

sed 's/ [^ ]*$/ new text/' < file
1
18.03.2021, 22:59

Теги

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