Вопрос явно задается вопросом о синтаксисе sed, и это очень корректный вопрос о синтаксисе sed regexp.
Но в случае, если основной вопрос заключается в замене пробелов на _
, на самом деле, вот альтернативный ответ, использующий "правильный инструмент для задания" для перевода символов, которым является tr
. (man tr
).
Команда tr abc 123
заменяет символы в первом списке на соответствующие символы во втором. Таким образом, tr '' ' _
заменяет пробел на подчеркивание.
$ echo ' 1 2 3 ' | tr ' ' _
_1_2_____3__
Чтобы показать более общий случай, включая различные виды пробельных символов, как в вашем примере,
.
здесь выводится только для перевода обычного символа пробела '' '
для сравнения:
echo ' 1 2 3 x\ny\tz' | tr ' ' _
_1_2_____3__x
y z
А вот вывод при переводе всех символов класса :пробел: в _
:
echo ' 1 2 3 x\ny\tz' | tr '[:space:]' _
_1_2_____3__x_y_z_
(Обратите внимание, что в конце вывода нет новой строки - и есть _
после z
])
.
Это можно явно написать как tr ' \t\n' _
, что является краткой формой tr ' \t\n' ___
.
$ echo ' 1 2 3 x\ny\tz' | tr ' \t\n' _
_1_2_____3__x_y_z_
Так как ваш сервер не имеет графического интерфейса, вы работаете с простым терминалом CLI, и работает NO x Server. Я думаю, что есть различные команды X на вашем HD, если вы хотите запустить X. OTOH, странно, что $ Term - это xterm ...
В любом случае, я никогда не играл с этим, но вы должен иметь возможность настроить палитру вашего терминала. Посмотрите на SetColors SetColors - измените вашу цветовую палитру Linux VT - он даже предоставляет файл ColatercheMe для солнечного.
также видят страницу человека для Console_Codes. Коды esc] PNRRGGBB
выглядят многообещающими.