Как удалить любую строку из файла с помощью сценариев оболочки?


9

Я пытаюсь удалить строку из .bash_profile. Строка добавляется при запуске моего сценария оболочки:

Моя строка в bash_profile выглядит следующим образом:

# for Myapllication
export MYAPP_HOME=/opt/myapp

Я хочу удалить строки, .bash_profileкогда myapp удаляется через rpm.

Как удалить любую строку из файла с помощью сценария оболочки? (или возможный альтернативный метод)

Ответы:


11

Вы можете удалить строку из текстового файла с помощью sed (существуют другие инструменты).

Например:

sed -i -e '/myapp/d' .bash_profile

удаляет из .bash_profile каждой строки, содержащей строку myapp.


10

Файл, как ~/.bash_profileживет в домашнем каталоге пользователя. Такой файл полностью находится под контролем пользователя. Глобальные действующие команды вроде rpmне должны изменять такие файлы.

  • Обычно у вас есть базовый файл конфигурации, который поставляется пакетом rpm.

  • Затем у вас есть глобальный файл конфигурации, который может использоваться пользователем root для перезаписи некоторых настроек, специфичных для данной системы.

  • Затем у вас есть личные файлы конфигурации в вашем домашнем каталоге, которые вы можете использовать, чтобы переопределить глобальные настройки с вашими личными предпочтениями.

Команда like rpmдолжна только изменять первый и никогда не изменять последний.


Можете ли вы предложить URL для изучения по этой теме?
Gyhot

1
@Gyhot unix.stackexchange.com/questions/77518/… хороший. Если в вашем целевом дистрибутиве есть /etc/profile.dкаталог, поместите туда файл, содержащий эту exportстроку. В противном случае вы можете редактировать /etc/profile, но будьте очень осторожны, чтобы не нарушить настройки системного администратора.
Жиль "ТАК - перестань быть злым"


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.