Як видалити будь-який рядок з файлу за допомогою скриптів оболонки?


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 для перезапису деяких параметрів, характерних для даної системи.

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

Така команда 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.