Используйте sed для добавления данных ПЕРЕД закрывающей двойной кавычкой, заключенной в путь

Мне нужно добавить путь /opt/dell/dcc приложения вне оператора пути по умолчанию в /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/dell/dcc"

Проблема в том, что добавление должно быть внутри закрывающего двойная кавычка пары, заключающей путь.

0
05.06.2019, 19:53
1 ответ

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

.
sed 's#"$#:/opt/dell/dcc"#' /etc/environment

Screenshot of proof solution works as described

Преимущество сопоставления в последней кавычке заключается в том, что даже если путь изменится в будущем, это выражение sed по-прежнему будет работать правильно, добавляя пользовательский путь в конце перед закрывающей двойной кавычкой.

Приведенное выше выражение sed протестировано и работает правильно, но у других может быть более элегантный способ добиться того же результата; пожалуйста, не стесняйтесь поделиться ими здесь.

Не забудьте добавить переключатель -i, чтобы изменения сохранялись после тестирования-

0
28.01.2020, 03:36

Теги

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