Как использовать sed для изменения строки

У меня была точно такая же проблема.

Случайное обновление с 3.16 до 4.9. После обновления при загрузке на новую версию показывало:

[FAILED] failed to start light display manager

Но предыдущая версия работала нормально.

У меня есть графическая карта NVIDIA GeForce GTX 750 Ti. Поэтому я очень подозреваю, что проблема связана с выделенной графической картой.

С этим подозрением я просто скачал новейшие драйвера NVIDIA с официальной страницы, установил их, и все заработало нормально. Вы можете сделать то же самое с драйверами AMD. Чтобы установить драйверы, мне пришлось установить новые заголовки :

.
apt-get install linux-headers-$(uname -r)
0
12.11.2019, 10:25
1 ответ

Обычно вы не используете sedдля изменения строки, которая у вас есть(в соответствии с вашим комментарием)в переменной оболочки. По крайней мере, если все, что вы хотите сделать, это удалить и/или заменить суффикс строки.

Вместо этого

NAME=./y1563/y1563.xls
NAME=${NAME%.xls}.txt    # remove.xls suffix, append.txt suffix
NAME=${NAME#./}          # remove./ prefix (this may not be needed)

Эти(${variable%pattern}и${variable#pattern})являются стандартными заменами переменных , которые удаляют строки суффиксов и префиксов из значения переменной.

Это также будет работать правильно, даже если значение $NAMEсодержит встроенные символы новой строки. В именах файлов допускаются символы новой строки, но поскольку sedявляется редактором, ориентированным на строку -, он не будет корректно обрабатывать такой ввод.

1
28.01.2020, 02:38

Теги

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